【问题标题】:Launch always my app instead of see the action chooser?总是启动我的应用程序而不是查看操作选择器?
【发布时间】:2011-07-01 16:49:35
【问题描述】:

我有一个活动,其意图过滤器与其他应用程序相同。所以当我运行我的应用程序时,我必须选择我想要执行的操作,但我不想选择这个。

我总是希望以高优先级运行我的应用程序并且不显示操作选择器。有什么想法吗?谢谢

【问题讨论】:

  • 接受答案,让人们帮忙。
  • @Vitor:你的活动是做什么的?什么是意图过滤器?
  • 我的活动读取了标签 NFC,但 android 已经安装了具有相同意图过滤器的其他 NFC 应用程序我不知道任何解决方案。
  • code code

标签: java android action intentfilter


【解决方案1】:

我总是希望以高优先级运行我的应用程序并且不显示操作选择器。有什么想法吗?

用户可以通过选中选择器对话框底部的“将其设为默认”复选框来选择执行此操作。

作为开发人员,您不能单方面将自己设为默认值。

我的活动读取标签 NFC,但我不知道任何解决方案,android 已经安装了具有相同意图过滤器的其他 NFC 应用程序。

您的过滤器说您要处理所有标签。如果是这样,那么用户将不得不选择是否将您的应用设为默认应用。

但是,您可以制作更严格的过滤器并优先处理。例如:

<activity android:name="URLHandler" android:label="@string/app_name">
    <intent-filter android:label="@string/app_name">
        <action android:name="android.nfc.action.NDEF_DISCOVERED" />
        <data android:scheme="http"
                    android:host="commonsware.com"
                    android:path="/nfctest"
        />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

在这里,当(且仅当)标记具有导致 URL 为 http://commonsware.com/nfctest 的 NDEF 记录时,我的活动将获得控制。由于我的过滤器比其他竞争应用程序的范围更窄,因此我的过滤器无需选择器即可获得控制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2019-04-14
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多