支付应用运行是否有必要进行HCE交易?

Is it necessary to have the payment app running to do HCE transactions?

我正在编写一个 NFC 支付应用程序。

我知道无论应用程序是否打开,我都可以使用 HCE 进行 NFC 交易。但是不知道有没有必要让app后台运行

是否需要在后台安装支付应用运行?

是的,您的应用需要在 HCE 事务期间 运行 在后台运行。

但是,Android 会自动解决这个问题。您需要做的就是在您的应用清单中注册您的 HostApduService class 实现及其 AID 列表。选择任何声明的 AID 后,Android 将自动查找相应的 HostApduService 实现,如果尚未启动则启动(实际绑定)它,并将 APDU 传递给它。

请注意,您甚至可以拥有一个根本没有任何 activity 的支付应用程序,因此您的应用程序的任何 activity 都不需要启动并隐藏在后台让 HCE 工作。