2017-03-01 1 views
0

j'ai besoin (s'il est possible) pour gérer une « url » comme celui-ci (dans un e-mail que je dois ouvrir mon application (« AMAI »)):android: Comment lire des données supplémentaires uri intention

http://wics/resetPassword/[email protected]/FOOBARTOKEN 

J'ai dans mon AndroidManifest.xml

<activity android:name=".ResetPasswordActivity"> 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <category android:name="android.intent.category.BROWSABLE" /> 
       <data android:scheme="http" 
        android:host="wics"/> 
      </intent-filter> 
</activity> 

Comment puis-je obtenir "[email protected]" et "FOOBARTOKEN" dans mon ResetPasswordActivity?

J'ai insérer ce code:

Intent intent = getIntent(); 
Uri uri = (Uri)intent.getData(); 

Mais maintenant? split "uri" chaîne et obtenir 3td et 4ème éléments?

Répondre

1

Eh bien, vous pourriez faire quelque chose comme ça.

<meta-data android:name="my_url" android:value="http://wics/resetPassword/[email protected]/FOOBARTOKEN" /> 

puis l'obtenir en code.

ApplicationInfo appInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); 
Bundle bundle = appInfo.metaData; 

String url = bundle.getString("my_url"); 
Uri uri = Uri.parse(url); 

Puis divisé sur le délimiteur "/".

String[] arr = url.split("/"); 

alors tout ce que vous avez à faire est de faire une boucle sur l'arr et de trouver vos mots. est-ce logique?

+0

s'il vous plaît la réponse comme .thank accepté. toujours prêt à partager ses connaissances. – Remario

+0

merci @Caspain. J'avais fait simil-comme votre commentaire mais je pensais que ce n'était pas la bonne méthode à suivre. Merci encore. – ZioBudda