android – 何时停用NFC服务?

android – 何时停用NFC服务?,第1张

概述我想知道什么时候启动和停止NFC服务. android 4.0.3的源代码似乎表明轮询依赖于一个常量(位于NfcService. java中) /** minimum screen state that enables NFC polling (discovery) */static final int POLLING_MODE = SCREEN_STATE_ON_UNLOCKED; 我会将此解 我想知道什么时候启动和停止NFC服务.
android 4.0.3的源代码似乎表明轮询依赖于一个常量(位于NfcService. java中)

/** minimum screen state that enables NFC polling (discovery) */static final int PolliNG_MODE = SCREEN_STATE_ON_UNLOCKED;

我会将此解释为“屏幕指示灯亮起,因此nfc服务处于活动状态”.
但是当屏幕被锁定时,无法识别NFC标签,即使屏幕亮起.

所以我很好奇:当锁定屏幕出现时,NFC服务是否已经停用,或者它仍在运行但是没有处理标签?

解决方法 实际上,我不认为NFC服务已停用.当屏幕值较低时,SCREEN_STATE_ON_UNLOCKED设备停止询问周围的NFC标签.您可以从以下代码中看到:

// configure NFC-C polling    if (mScreenState >= PolliNG_MODE) {        if (force || !mNfcPollingEnabled) {            Log.d(TAG,"NFC-C ON");            mNfcPollingEnabled = true;            mDeviceHost.enablediscovery();        }    } else {        if (force || mNfcPollingEnabled) {            Log.d(TAG,"NFC-C OFF");            mNfcPollingEnabled = false;            mDeviceHost.Disablediscovery();        }    }

但NFC-EE路由已启用,工作屏幕状态高于SCREEN_STATE_ON_LOCKED:

// configure NFC-EE routing    if (mScreenState >= SCREEN_STATE_ON_LOCKED &&            mEeRoutingState == ROUTE_ON_WHEN_SCREEN_ON) {        if (force || !mNfceeRouteEnabled) {            Log.d(TAG,"NFC-EE ON");            mNfceeRouteEnabled = true;            mDeviceHost.doSelectSecureElement();        }    } else {        if (force ||  mNfceeRouteEnabled) {            Log.d(TAG,"NFC-EE OFF");            mNfceeRouteEnabled = false;            mDeviceHost.dodeselectSecureElement();        }    }

服务本身在此类的其他部分中启动和停止.

总结

以上是内存溢出为你收集整理的android – 何时停用NFC服务?全部内容,希望文章能够帮你解决android – 何时停用NFC服务?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存