我想在不同的活动中阅读任何TAG而不会出现在我的显示器中,哪个Activity最适合阅读此标签?我认为这应该是自动的。 我的代码清单是:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.iprocuratio.strim.LoginActivity"
android:label="@string/title_activity_login" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.iprocuratio.strim.TemperatureActivity"
android:label="@string/title_activity_temperature" >
</activity>
<activity
android:name="com.iprocuratio.strim.ConstantsActivity"
android:label="@string/title_activity_constants" >
</activity>
<activity
android:name="com.iprocuratio.strim.FC"
android:label="@string/title_activity_fc" >
</activity>
<activity
android:name="com.iprocuratio.strim.FR"
android:label="@string/title_activity_fr" >
</activity>
<activity
android:name="com.iprocuratio.strim.SatO2"
android:label="@string/title_activity_sat_o2" >
</activity>
<activity
android:name="com.iprocuratio.strim.MainActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.iprocuratio.strim.PrescriptionsActivity"
android:label="@string/title_activity_prescriptions">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
<activity
android:name="com.iprocuratio.strim.MedicamentosActivity"
android:label="@string/title_activity_medicamentos" >
</activity>
<activity
android:name="com.iprocuratio.strim.Identificacion"
android:label="@string/title_activity_identificacion" >
<intent-filter >
<action android:name="com.google.zxing.client.android.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.iprocuratio.strim.Pantallaleer"
android:label="@string/title_activity_pantallaleer" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
<activity
android:name="com.iprocuratio.strim.IdentificacionFinal"
android:label="@string/title_activity_identificacion_final" >
</activity>
</application>
我已经在两个活动中实现了读取TAG: PrescriptionsActivity和Pantallaleer。 例如,当我想在PrescriptionsActivity中读取TAG时,总会出现下一个图像:
我希望当我阅读TAG时,它不显示此窗口,它会自动选择正确的活动。 谁知道,我该怎么办? 我的代码是否正确?
让我知道。感谢。
问候。
答案 0 :(得分:1)
两个活动对同一个意图都是敏感的(即两个触发包含文本记录的标记(或类型为text / plain的MIME类型记录):
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
如果两个包含相同的数据类型并且两个过滤器匹配相同的数据类型,那么Android无法告诉哪些活动更适合特定标记的需求。因此,Android会显示让用户选择的意图选择器。
如果要避免意图选择器,则应为每个活动使用不同的数据类型(使用非特定文本/普通数据类型)。例如,如果标记应该启动PrescriptionsActivity
,您可以将以下NDEF消息写入标记:
+-------------------------------------------------+
| EXT:iprocuratio.com:prescriptions | <your data> |
+-------------------------------------------------+
您可以使用
在Android上创建此NDEF消息NdefMessage msg = new NdefMessage(
NdefRecord.createExternal("iprocuratio.com", "prescriptions", yourData),
);
PrescriptionsActivity
的意图过滤器可能如下所示:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/iprocuratio.com:prescriptions"/>
</intent-filter>
同样,对于Pantallaleer
活动,您可以使用:
+-------------------------------------------------+
| EXT:iprocuratio.com:pantallaleer | <your data> |
+-------------------------------------------------+
您可以使用
在Android上创建此NDEF消息NdefMessage msg = new NdefMessage(
NdefRecord.createExternal("iprocuratio.com", "pantallaleer", yourData),
);
Pantallaleer
活动的意图过滤器可能如下所示:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/iprocuratio.com:pantallaleer"/>
</intent-filter>