我有一个Uri NFC TAG:pay://myName/12345
在我的意图过滤器中我有:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<data android:mimeType="text/plain" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
如何指定MIME类型的数据以启动我的应用程序而没有应用程序选择器?
答案 0 :(得分:11)
嗯,理想情况下,你不会发明像这样的非标准方案。最好使用指向网页的HTTP URL创建标记,其中您的Android活动也会处理该网址 - Android活动的<intent-filter>
将更具体,因此它将优先于安装。这样,标签可以用于更多设备。
话虽如此,无论URL语法如何,都要使用适当的<data>
元素。不使用android:mimeType
,而是使用android:scheme
和其他属性。
Here is a sample project允许用户将URL写入符合NDEF的标记(通过浏览器中的“共享选项”菜单项共享)。如果您为该标记写了一个特定的URL,那么该应用程序还有一个活动,该活动将在扫描该标记时启动,由此清单条目提供:
<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>