2010-03-05 4 views
4

J'essaie de lancer mon application lorsque l'utilisateur accède à une certaine URL. J'ai trouvé quelques exemples et ils ont tous les mêmes choses dans les manifestes, mais ça ne marche pas pour moi. J'ai mis le filtre d'intention sous une activité aussi bien qu'un récepteur.Lancer l'activité à partir de l'URL

Voici mon extrait manifeste:

<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="www.urbandictionary.com" android:scheme="http"></data> 
</intent-filter> 

Quand sous l'activité, j'ai essayé d'utiliser onNewIntent et quand il était sous un récepteur, j'ai essayé d'utiliser onReceiveIntent, à la fois avec un simple appel Log.i pour voir si il a tiré ou non. Je n'ai pas beaucoup de chance.

+0

question connexe: http://stackoverflow.com/questions/2448213/how-to-implement-my-very-own-uri-schema-on-android – Casebash

Répondre

7

J'utilise dans mon fichier manifest.xml:

<activity android:name=".SomeName"> 
    <intent-filter> 
     <category android:name="android.intent.category.ALTERNATIVE" /> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:host="google.com" android:scheme="http" /> 
    </intent-filter> 
</activity> 

Cela activité UnNom commencer. Je n'utilise pas www dans la partie android: host peut-être que cela fera une différence.

Lorsque l'activité commence, vous pouvez obtenir les données qui se cache derrière le .com en utilisant (par exemple):

Uri data = getIntent().getData(); 
if(data != null && data.getPathSegments().size() >= 2){ 
    List<String> params = data.getPathSegments(); 
    String somestuff = params.get(0); 
} 

Edit: Si vous wan't pour être en mesure de vérifier l'hôte à partir de l'activité, utiliser cette méthode:

data.getHost(); 
+0

est ce travail avec Android sucette? –

+0

Oui, cela fonctionne;) –

+0

Pouvez-vous s'il vous plaît nous guider ici http://stackoverflow.com/q/29116574/1071545 –

Questions connexes