安卓问题
主应用程序的要求:
假设我有一个 Android 应用程序 (MainApp),它托管一个具有以下职责的
Activity
:
- 通知另一个应用程序 (CriticalNfcApp) 开始侦听 NFC 标签。
- 显示从 CriticalNfcApp 收到的结果。
- 提供到MainApp其他部分的导航,并通知CriticalNfcApp何时停止侦听 NFC 标签。
- 在CriticalNfcApp的监听模式期间,MainApp需要保持在前台,因为它协调与CriticalNfcApp的交互。
CriticalNfcApp 的要求:
- 开始监听 NFC 标签并读出一些关键信息。
- 由于其任务的关键性质,CriticalNfcApp需要:
- 获得认证。
- 在单独的进程中运行。
- 隔离在单独的应用程序中。
限制:
- CriticalNfcApp 与 NFC 卡执行多次敏感交互(收发),因此此交互必须保留为 CriticalNfcApp 的一部分,并且不能移动到 MainApp。
- 虽然在 NFC 监听期间可以很容易地将 CriticalNfcApp 放在前台并带有
Activity
,并在结果可用或 CriticalNfcApp 中止时将其关闭,但这不是一个选项。
用户必须始终能够导航到 MainApp 的其他区域,而无需先关闭 CriticalNfcApp Activity
。
技术问题:
是否可以实现两个应用程序系统:
- MainApp Activity 位于前台,并且
- CriticalNfcApp在后台运行,监听 NFC 交互并将相关非关键数据传回MainApp?
挑战:
最初,我想在
CriticalNfcApp
项目中使用ForegroundService
,该项目托管一个NFCAdapter
。然而:
NFCAdapter
仅支持通过传递Activity
的实例来创建,所以这似乎不起作用。
另一个想法是在屏幕顶部创建一个不可见的小
Activity
,不显示任何内容并实例化NFCAdapter.enableReaderMode(Activity,....)
。然而:
- 一旦 MainApp
Activity
中有一些交互,这可能会进入后台并暂停或停止。这似乎也不是一个可行的方法。
问题:
- 有人对这个描述的星座有工作方法吗?
- 有什么想法可以让这成为可能吗?
- 实现这一目标的架构会是什么样子?