我读过这个,
Reading NFC tags only from a particuar activity
但是设备仍在扫描应用程序的所有活动上的标签.
编辑:
<?xml version="1.0" enCoding="utf-8"?><manifest xmlns:androID="http://schemas.androID.com/apk/res/androID" package="com.example.nfccheckout" > <uses-feature androID:name="androID.harDWare.nfc" androID:required="true" /> <uses-permission androID:name="androID.permission.NFC" /> <application androID:allowBackup="true" androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" androID:theme="@style/Apptheme" > <activity androID:name=".activitIEs.MainActivity" androID:label="@string/app_name" > <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity androID:name=".activitIEs.ReceiveActivity" androID:label="@string/Title_activity_receive" > <intent-filter> <action androID:name="androID.nfc.action.NDEF_disCOVERED" /> <category androID:name="androID.intent.category.DEFAulT" /> <data androID:mimeType="application/Json+com.example.nfccheckout" /> </intent-filter> </activity> <activity androID:name=".activitIEs.CreatePayloadActivity" androID:label="@string/Title_activity_create_payload" > </activity> <activity androID:name=".activitIEs.ConfirmationActivity" androID:label="@string/Title_activity_confirmation" > </activity> </application></manifest>解决方法 如果您想要在某个活动位于前台时对NFC发现事件(NDEF_disCOVERED,TECH_disCOVERED,TAG_disCOVERED)进行处理,则可以为 foreground dispatch system注册该活动.然后,该活动可以忽略这些事件(它将在其onNewIntent中接收() 方法.
这样可以防止将NFC发现事件传递给在清单中注册了NFC disovery intent过滤器的任何其他活动(因此应用程序和任何其他已安装的应用程序中的活动).
但是,此方法不会禁用设备的NFC调制解调器.因此,NFC芯片仍会轮询标签,但不会向任何应用报告.
因此,您要禁用NFC的所有活动都会执行以下 *** 作:
public voID onResume() { super.onResume(); NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); PendingIntent pendingIntent = PendingIntent.getActivity(this,new Intent(this,getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_top),0); nfcAdapter.enableForegrounddispatch(this,pendingIntent,null,null);}public voID onPause() { super.onPause(); NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); nfcAdapter.disableForegrounddispatch(this);}public voID onNewIntent(Intent intent) { if (NfcAdapter.ACTION_TAG_disCOVERED.equals(intent.getAction())) { // drop NFC events }}总结
以上是内存溢出为你收集整理的Android应用仅为一个活动启用NFC全部内容,希望文章能够帮你解决Android应用仅为一个活动启用NFC所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)