捕捉市场搜索意图?

时间:2010-01-07 21:28:56

标签: android android-intent

我正试图抓住Android Market搜索意图。

这就是您启动Android电子市场并按包名称搜索应用的方式:

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

现在,这是我的一项活动的意图过滤器:

<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>

我希望Android能问我哪个应用应该处理不会发生的意图 但是,如果我将market替换为market1search替换为search1,则会在两个位置启动我的活动。
是否存在“不可触及”的意图或什么?

TIA。

1 个答案:

答案 0 :(得分:9)

这确实很奇怪,有点违背整个开放意图系统。我知道有广播只有系统可以创建,但我没有听说过这样的意图解析。

无论如何,我只是将市场APK转移到我的HTC Hero上并检查清单。通过添加路径,它们在URI匹配方面稍微具体一些:

<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>

但是,我尝试将其添加到我的应用中,但我增加了优先级值(not that I've seen that have any effect before),但仍无法捕获Intent

希望某人(或AOSP)可以了解情况......