Android NFC 可以在没有用户输入/操作或没有通知的情况下工作吗?

Posted

技术标签:

【中文标题】Android NFC 可以在没有用户输入/操作或没有通知的情况下工作吗?【英文标题】:Can Android NFC work without user input/action or without notification? 【发布时间】:2021-06-30 07:52:13 【问题描述】:

目前,我正在研究针对 androidios 编写的具有以下功能的考勤应用程序的可行性。 iOS - 无法自动化。每次点击标签时,它都需要用户输入或点击。

但是,我没有很多关于 Android NFC 功能的谷歌搜索结果。 我想在我的考勤应用中使用以下功能。

将员工 ID 写入标签或将标签标识符记录在员工记录中(使用 3rd 方应用)

考勤应用程序将在 Android 手机上安装和设置,并将保存在塑料盒(考勤亭)中。 https://www.famoco.com/use-case/infordata-nfc-students-attendance-tracking/

员工轻点就走

将标签 ID 或员工 ID 发送到 Azure API(带有 Azure 守护程序 API 的令牌)

API 检查标签是否属于员工

API获取当前考勤状态

API 将状态发送回 Android 应用程序 - 成功、未找到员工记录、已点击并在特定时间段内尝试四次取消。例如 30 秒。

在应用中显示结果

我想自动执行上述步骤,并且在考勤移动设备应用程序(考勤亭)中不需要用户(员工)操作/输入/点击。

在 Android 手机和 NFC 应用中是否可行?

【问题讨论】:

如果我没听错的话,您真正想要做的只是将 Android 手机用作阅读器,就像签到点一样,运行您的软件来注册它们。如果是这样,那么是的,只要屏幕功能被解锁,它就会起作用,打开应用程序并保持打开状态将使应用程序代码更快地响应标记输入启动应用程序的字段事件。虽然有更简单的方法,但我会想到一个 Raspberry Pi 和一个简单的 NFC 阅读器 【参考方案1】:

所以你说屏幕将被锁定,但这意味着 NFC 将被禁用普通应用程序,并且你向用户显示内容的能力有限。

但这并不是您真正想要做的,您实际上希望设备解锁但处于信息亭类型模式。有第三方解决方案可以做到这一点,但您可以使用 Dedicated devices API 的各种功能(如“锁定任务模式”、“成为家庭应用程序”等)让您自己的应用程序做到这一点

一旦您使您的应用程序成为唯一可以在前台运行的应用程序,并且设备将永远不会使用专用设备功能进入睡眠状态或锁定自身,那么您的应用程序可以在没有用户交互的情况下按照正常前台读取和处理 NFC 卡NFC APP(我建议使用EnableReaderMode NFC API 来执行此操作,因为它不必暂停并重新启动前台应用程序来读取卡片)

其他要点

设备需要使用市电供电,否则会很快变平 不要使用 OLED 屏幕,否则会出现烧屏问题 请勿使用标签 ID,因为这可能是伪造的且不安全,请使用加密方法将数据安全地写入标签 使用手机不利于用户交互,因为 NFC 读取器通常位于背面,并且通常不会通过屏幕读取,因此用户需要访问手机背面才能放置标签阅读

因此,总体而言,通过一些工作是可行的,用户所要做的就是将 NFC 标签点击到手机背面。

【讨论】:

【参考方案2】:

Android NFC 可以在没有用户输入/操作或没有通知的情况下工作吗?

当然不是。至少用户必须允许连接(通过 BLE 或 NFC)

【讨论】:

我不知道如何在锁定屏幕的情况下使用 nfc。很确定,这是不可能的。 (但我不认为这是问题所在,如果需要,屏幕可以始终以最小亮度和一些自定义屏幕锁定处于活动状态)。我的理解是否正确,员工应该将手机连接到某个“电话终端”?

以上是关于Android NFC 可以在没有用户输入/操作或没有通知的情况下工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

从 PN532 NFC 获取电话号码

如何打开android beam

在 Android 上通过 NFC 读取 Visa payWave 信用卡详细信息

是否可以创建一个应用程序,安装后用户可以通过双击主页按钮轻松打开和关闭蓝牙/NFC?

如何在Android中测量NFC RSSI?

NFC阅读器没有在android中连续读取NFC标签