Estoy tratando de crear mi propio esquema de URL para que mi aplicación de Android pueda ser llamada a través de una URL, pero por ahora no tengo éxito.android custom url scheme ..?
Im tratando de tener esta url para trabajar: cedemo: //com.cedemo.scan X = toto
Aquí es parte de mi archivo de manifiesto:?
<activity android:name=".Gallery1" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.GALLERY" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cedemo" android:host="com.cedemo.scan" />
</intent-filter>
</activity>
¿Alguien puede ayudar a contar ¿Qué está mal? Además, si alguien encuentra lo que está mal, ¿alguien me puede decir cómo leo la variable "X" dentro del código de Android de mi aplicación?
Actualización:
Actualización: Me hice la modificación de la acción (tal como se aconseja en una de las respuestas) y ha funcionado bien. La cuestión es que todavía no puedo obtener el valor de la variable url. Aquí está el código que probé.
final Intent intent = getIntent();
final String myScheme=intent.getScheme();
final Bundle myBundle=intent.getExtras();
final boolean inContestKey;
if (myBundle != null) {
inContestKey=myBundle.containsKey("inContest");
}
final Uri myURI=intent.getData();
final String value;
if (myURI != null) {
value = myURI.getQueryParameter("inContest");
}
Pero recibir null
de todas las funciones ... ¿qué otra cosa puedo hacer?
Puede ser que debería explicar mejor el contexto de mi software:
- Mi software se inicia
- Mi software de puesta en marcha entonces el navegador
- el usuario haga clic en un enlace en el navegador y el navegador ir para el esquema de URL, de vuelta al software con una "X" variable (por ejemplo)
- el software debe leer la variable "X"
Pero en mi caso: myScheme
, myBundle
, myURI
están configurados en null
.
¿Alguna idea?
Actualización:
he encontrado la respuesta es que usted tiene que estar en la actividad principal de hacer eso.
HI, GRACIAS por las informaciones. Cambié la ACCIÓN a action.VIEW y funcionó bien. Lo único es que no puedo ver la variable url "X" ... Intenté este código: – Fabien
public void onStart() { \t super.onStart(); \t \t \t final Intent intent = getIntent(); \t final String myScheme = intent.getScheme(); \t final Bundle myBundle = intent.getExtras(); \t final boolean inContestKey; \t if (myBundle! = Null) \t \t inContestKey = myBundle.containsKey ("inContest"); final Uri myURI = intent.getData(); final Valor de cadena; if (myURI! = Null) \t value = myURI.getQueryParameter ("X"); pero todo está recibiendo valor NULL ... ¿Qué puedo hacer? – Fabien
para una mejor lectura, edité mi pregunta. – Fabien