gpt4 book ai didi

android - 监听 HCE(基于主机的卡仿真)事件

转载 作者:行者123 更新时间:2023-11-30 01:26:09 27 4
gpt4 key购买 nike

每次用户使用基于主机的卡仿真 (HCE) 开始 NFC 交易时,我都需要启动我的应用。

我不需要管理交互。我不需要来自阅读器或 NFC 模拟器的任何类型的数据。我无法控制使用该服务的应用程序。我只需要知道手机是否靠近 NFC 读取器。

有没有一种简单的方法,比如在不干扰其他应用的情况下监听通用系统事件或通知?

最佳答案

不,Android 不会发送任何通知,例如“嘿,有些应用刚刚通过 HCE 激活”。因此,您无法在您的应用程序中获得此类事件。具体而言,它不可能监控您设备上的任何现有 HCE 应用程序(不受您控制)是否已通过 HCE 激活。

您可以做的是创建您自己的 HCE 服务(为您的特定应用程序 AID 注册)。如果此 HCE 服务收到交易(另请参阅 How can I send message from HostApduService to an activity?),则可以启动 Activity :

public class MyHostApduService extends HostApduService {
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
if ((apdu[1] == (byte)0xA4) && (apdu[2] == (byte)0x04)) {
// SELECT by AID
Intent intent = new Intent(this, MyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

return new byte[]{ (byte)0x90, (byte)0x00 }
} else {
return new byte[]{ (byte)0x6D, (byte)0x00 }
}
}
}

关于android - 监听 HCE(基于主机的卡仿真)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36402419/

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