Question

Je suis en train d'attraper une intention de recherche Android Market.

C'est la façon dont vous lancez Android Market et la recherche d'une application par nom du package:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:com.google.somepackage")));

Maintenant, voici le filtre intention pour un de mes activités:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="market" android:host="search" />
</intent-filter>

Je me attends Android à me demander quelle application doit gérer l'intention qui ne se produit pas.
Pourtant, si je remplace market avec market1 ou search avec search1, dans les deux endroits, mon activité se lance.
Y at-il une notion d'intentions « intouchables » ou quelque chose?

TIA.

Était-ce utile?

La solution

C'est vraiment étrange, et va un peu contre l'ensemble du système intention ouverte. Je sais qu'il ya des émissions que seul le système peut créer, mais je ne l'avais pas entendu parler d'une telle chose pour la résolution intention.

Quoi qu'il en soit, je viens jetai le marché APK sur mon HTC Hero et vérifié le manifeste. Ils sont légèrement plus spécifiques dans leur appariement URI en ajoutant le chemin:

<intent-filter android:priority="100">
    <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="market.android.com" android:path="/search" />
    <data android:scheme="market"
          android:host="search" android:path="" />
</intent-filter>

Cependant, j'ai essayé d'ajouter à mon application, sauf que j'augmenté la valeur de priorité (

scroll top