我想使用NFC标签启动应用程序.我使用Android应用程序记录(AAR)使用Android应用程序记录(AAR),使用NFC标签启动Android应用程序,使用额外数据或使用NDEF_DISCOVERED/ TECH_DISCOVEREDintent过滤器.但是,在通过NFC事件启动时,如何将NFC标签(例如某些文本)中的数据传递给我的活动?
我已经阅读了NFC基础知识,但据我所知,它似乎想要实现一种读取标签的机制,当我真的不想在标签打开应用程序后重新读取标签,但是相反,我只想要同时传入的数据.
此外,这些机制似乎允许应用程序在标记启动后读取标记.换句话说,我担心如果有人在应用程序打开后再点击标签,那么标签将再次被读取(这是我不想要的).
其次,我如何创建这样的NDEF消息?
我首先告诉你我在做什么.我在序列中有三个活动,
活动1 >>活性2 >> Activity3.现在,当我点击标签时,我只想从Activity2读取NFC标签.当我在Activity1或Activity3中时,我的应用程序无法读取标记.我怎么想这个,有没有启用/禁用选项?任何属性设置为相同?我不想提示用户为此目的从设置启用/禁用NFC.
在我的应用中,我正在使用NFC读取标签。我单击按钮以启用NFC。将打开一个进度对话框以读取NFC标记,完成后将禁用NFC。一切都很好。但是,当应用程序中未启用NFC且我在手机上放置了NFC标签时,默认的Android应用程序会读取NFC标签并将我的应用程序置于后台。
如何禁用Android应用程序?
我的启用/禁用NFC的代码:
/**
* @param activity The corresponding {@link Activity} requesting the foreground dispatch.
* @param adapter The {@link NfcAdapter} used for the foreground dispatch.
*/
public static void setupForegroundDispatch(final Activity activity, NfcAdapter adapter) {
final Intent intent = new Intent(activity.getApplicationContext(), activity.getClass());
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
final PendingIntent pendingIntent = PendingIntent.getActivity(activity.getApplicationContext(), 0, intent, 0);
IntentFilter[] filters = new IntentFilter[1];
String[][] techList = new String[][]{};
// Notice that this is the same filter as in our manifest.
filters[0] = new IntentFilter();
filters[0].addAction(NfcAdapter.ACTION_NDEF_DISCOVERED);
filters[0].addCategory(Intent.CATEGORY_DEFAULT); …Run Code Online (Sandbox Code Playgroud)