gpt4 book ai didi

android - NFC 在后台

转载 作者:太空狗 更新时间:2023-10-29 16:36:37 30 4
gpt4 key购买 nike

我的应用程序已经在后台处理 WIFI/蓝牙连接/断开连接,并根据这些事件执行后台任务。现在我想用 NFC 做同样的事情,但到目前为止我发现的所有样本都在发现 NFC 标签时开始 Activity 。

我已经尝试为 NDEF_DISCOVERED 注册一个接收器,但它不起作用...

 <receiver android:name="com.mxp.time.receivers.NfcReceiver" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
</intent-filter>
</receiver>

其实我已经读到这是不可能的,因为android的回退策略。到目前为止我找到的唯一解决方案是定义一个没有 UI 的 Activity 并对连接的标签进行轮询。我真的不喜欢这种技术,因为它需要让这个 Activity 保持打开状态,这会导调用池使用量增加

谁能帮我解决这个问题?

干杯,斯特凡

最佳答案

不,那是不可能的。 Android 上的 NFC 被设计为一种(有意的)用户交互形式(因此使用用户可见的 Activity )。毕竟,这就是 NFC 标签的用途。

因此,android.nfc.action.*_DISCOVERED Intent 发送到 Activity ,它们无法通过广播接收器接收。因此,接收它们并让它看起来在后台发生的唯一可能性是使用一个没有 UI 的 Activity ,然后将这些事件转发给您的后台任务。

在 NDEF_DISCOVERED Intent (与关联数据)的情况下,通常不需要保持 Activity 打开以执行轮询。相反,您可以注册要根据该特定 Intent 启动的 Activity 。顺便提一句。由于 Android 在屏幕打开时无论如何都会轮询标签,因此当注册 Activity 以接收 NFC 事件时,电池使用情况应该不会有太大差异。

关于android - NFC 在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27271805/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com