Utilisez un android.intent.action.VIEW de la catégorie android.intent.category.BROWSABLE.
De l'application de Romain Guy Photostream de AndroidManifest.xml,
<activity
android:name=".PhotostreamActivity"
android:label="@string/application_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="flickr.com"
android:pathPrefix="/photos/" />
<data android:scheme="http"
android:host="www.flickr.com"
android:pathPrefix="/photos/" />
</intent-filter>
</activity>
Une fois à l'intérieur vous êtes dans le activity, vous devez rechercher l'action, puis faire quelque chose avec l'URL que vous avez été remis. La méthode Intent.getData()
vous donne un Uri.
final Intent intent = getIntent();
final String action = intent.getAction();
if (Intent.ACTION_VIEW.equals(action)) {
final List<String> segments = intent.getData().getPathSegments();
if (segments.size() > 1) {
mUsername = segments.get(1);
}
}
Il convient de noter, toutefois, que cette application devient un peu à jour (1.2), vous trouverez peut-être il y a de meilleures façons d'y parvenir.
Une chose à être au courant - votre utilisateur sera présenté avec le choix d'utiliser l'application appropriée car tout ce que vous faites est d'enregistrer la vôtre application en tant que gestionnaire. Personnellement (en tant qu'utilisateur) je suis ennuyé avec ça même si je me rends compte que je peux opter pour "l'action par défaut" – Bostone
Cela ne fonctionne pas pour les téléphones HTC. Comment puis-je le faire fonctionner sur les téléphones HTC? – user484691
Vous voudrez probablement utiliser la méthode intent.getDataString() plutôt que getData() si vous tenez à l'URL complète, y compris la chaîne de requête. Ce commentaire vous fera économiser l'heure qu'il me vient juste de me coûter ..... :-( –