如何更改打开应用程序的默认方式

时间:2012-03-30 14:30:38

标签: java android xml nfc

我在android中写了一个关于NFC的应用程序,但是我遇到了问题。当我将NFC标签靠近手机时,会出现一个对话框,让我选择从NFC标签中读取信息的应用程序。但我不希望这个对话框我只是想要当NFC标签靠近手机时,我写的应用程序将自动打开。我试图将代码修改为:

<intent-filter android:priority = "100">
    <action android:name="android.nfc.action.TECH_DISCOVERED" />                
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
     android:resource="@xml/filter_nfc"/>   

2 个答案:

答案 0 :(得分:0)

当您设置一个唯一的uri ..它将打开您的应用而不是其他人... http://developer.android.com/guide/topics/nfc/nfc.html#ndef

答案 1 :(得分:0)

Android决定自动打开哪个应用的唯一方法是,Android是否可以自行读取代码的内容。仅当标签遵循NFC论坛类型标签标准之一并包含NDEF消息时,才可以进行此操作。在这种情况下,Android将发送ACTION_NDEF_DISCOVERED意图,其中包含基于标记内容的数据,例如URI或MIME类型。您的应用可以根据此声明一个意图过滤器来接收此类意图。如果MIME类型或URI是唯一的,那么您的应用将是唯一匹配并将自动打开的应用。

如果您正在使用的NFC标签不包含NDEF消息,那么您实际上是运气不好。 Android无法确定比标签技术更具体的内容,并且通常会有多个应用程序已订阅此类意图。因此,应用程序选择器将呈现给用户以选择正确的应用程序。