Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用我的活动接收NFC标签数据_Android_Android Intent_Nfc_Launcher_Ndef - Fatal编程技术网

Android 如何使用我的活动接收NFC标签数据

Android 如何使用我的活动接收NFC标签数据,android,android-intent,nfc,launcher,ndef,Android,Android Intent,Nfc,Launcher,Ndef,我正在开发一个NFC应用程序,在点击NFC标签时打开WiFi并连接到特定网络。 到目前为止,我知道NFC活动应该在前台,以便从Android系统获取NFC数据。 但是,我怀疑我的理解是否正确,因为我已经看到了NFC Tasks()的操作。 虽然应用程序在接收NFC数据时未激活,但它正在启动相应的任务并成功打开WiFi 我想知道怎么可能。 有人能解释它的运作吗 提前谢谢 “NFC工具”制作的NFC标签上的Logcat :I/NfcDispatcher(822):将AAR与NDEF匹配 :E/Sou

我正在开发一个NFC应用程序,在点击NFC标签时打开WiFi并连接到特定网络。 到目前为止,我知道NFC活动应该在前台,以便从Android系统获取NFC数据。 但是,我怀疑我的理解是否正确,因为我已经看到了NFC Tasks()的操作。 虽然应用程序在接收NFC数据时未激活,但它正在启动相应的任务并成功打开WiFi

我想知道怎么可能。 有人能解释它的运作吗

提前谢谢

“NFC工具”制作的NFC标签上的Logcat :I/NfcDispatcher(822):将AAR与NDEF匹配 :E/SoundPool(822):非正常模式时不播放SoundPool :E/NfcService(822):applyAlternativeHandler::收到未知消息 :I/ActivityManager(553):从pid 822开始{act=android.nfc.action.NDEFêu DISCOVERED typ=w1/33 pkg=com.wakdev.nfctasks cmp=com.wakdev.nfctasks/.NFCActivity(具有额外功能)u=0}

我的应用程序制作的NFT标签上的Logcat :I/NfcDispatcher(822):将AAR与应用程序启动匹配 :E/SoundPool(822):非正常模式时不播放SoundPool :E/NfcService(822):applyAlternativeHandler::收到未知消息 :I/ActivityManager(553):从pid 822开始{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]flg=0x10000000 pkg=com.Farraf.DigitalSignage cmp=com.Farraf.DigitalSignage/.MAIN.DigitalSignageActivity u=0}
:I/ActivityManager(553):启动proc com.Farraf.DigitalSignage for activity com.Farraf.DigitalSignage/.main.DigitalSignage活动:pid=10160 uid=10008 gids={3003,1015,1028}

除了在前台调度系统接收NFC标签事件外(请参阅),您可以注册要启动的活动,并通过应用程序的AndroidManifest.xml接收NFC事件(请参阅)。例如,如果您的NFC标记包含URI,您可以创建如下意图过滤器:

<activity ...>
    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="http"
              android:host="www.example.com" />
    </intent-filter>
</activity>


问题在于,在点击我的应用程序编写的NFC标记时,intent.action是MAIN,而不是NDEF\u。你认为intent filter设置可以解决我的问题吗?@RaphaelJoh这似乎是一个不同于你在上面问题中描述的问题:如果你没有正确注册NDEF intent,标签(特别是带有AAR的标签)只会导致intent action MAIN触发。请参阅此和此以获得更详细的解释。要设置为NFC标记的数据如下所示。。。。记录0:text////记录1:external若要使用文本数据调用我的应用程序,请在AndroidManifest.xml中添加以下意图筛选器。现在,我可以在通过NFC标记启动应用程序的同时获取WiFi信息。@RaphaelJoh正确,如果您的第一条记录是文本记录(或文本/纯MIME类型记录),您需要调整意图过滤器以匹配文本/纯MIME类型(而不是我上面显示的URI)。请注意,您在注释中显示的数据结构看起来不像人类可读的文本,因此更适合自定义记录类型,例如NFC论坛外部类型。