Attraper les intentions de recherche de marché?
-
19-09-2019 - |
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.
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é (