2011-09-14 14 views
11

Estoy tratando de averiguar cómo iniciar una aplicación desde una URL, y cómo debería escribir esa URL.Acerca de iniciar la aplicación Android desde una URL

tengo el siguiente código en mi AndroidManifest:

<activity android:name=".MyActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"></action> 
     <action android:name="android.intent.action.VIEW"></action> 
     <category android:name="android.intent.category.LAUNCHER"></category> 
     <category android:name="android.intent.category.DEFAULT"></category> 
     <category android:name="android.intent.category.BROWSABLE"></category> 
     <data android:host="my.app" android:scheme="http"></data> 
    </intent-filter> 
</activity> 

que utiliza una URL como se explica en this answer, pero no pasa nada.

Háganme saber si mi intención está bien escrita, y cómo debería escribir la URL que llama a esa aplicación, y tenga en cuenta que debo llamar a mi Actividad "Principal".

Respuesta

26

Necesita tener dos elementos <intent-filter> para este <activity>. Uno será para MAIN y LAUNCHER. El otro será para VIEW, BROWSABLE/DEFAULT, y su elemento <data>:

<activity android:name=".MyActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"></action> 
     <category android:name="android.intent.category.LAUNCHER"></category> 
    </intent-filter> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW"></action> 
     <category android:name="android.intent.category.DEFAULT"></category> 
     <category android:name="android.intent.category.BROWSABLE"></category> 
     <data android:host="my.app" android:scheme="http"></data> 
    </intent-filter> 
</activity> 

Entonces, http://my.app debería iniciar su actividad.

+0

Gracias por tu comentario, pero esto no funciona para mí. Traté de escribir esa URL en el navegador, pero mi aplicación no se inicia. –

+0

@FelipeDev: Aquí hay un proyecto de muestra que demuestra esta técnica: https://github.com/commonsguy/cw-advandroid/tree/master/Introspection/URLHandler – CommonsWare

+0

@FelipeDev: y aquí hay una URL a una página que puede visitar en su navegador que invoca los enlaces que lanzarán esa aplicación: http://commonsware.com/sample – CommonsWare

Cuestiones relacionadas