Android应用仅为一个活动启用NFC

Android应用仅为一个活动启用NFC,第1张

概述是否可以为 Android中的一项活动启用NFC以支持NFC应用程序? 我读过这个, Reading NFC tags only from a particuar activity 但是设备仍在扫描应用程序的所有活动上的标签. 编辑: <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.and 是否可以为 Android中的一项活动启用NFC以支持NFC应用程序?

我读过这个,
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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存