首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >侦听HCE (基于主机的卡仿真)事件

侦听HCE (基于主机的卡仿真)事件
EN

Stack Overflow用户
提问于 2016-04-04 12:18:11
回答 1查看 950关注 0票数 1

每次用户使用基于主机的卡仿真(HCE)启动NFC事务时,我都需要启动我的应用程序。

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

有没有一种简单的方法,比如监听一般的系统事件或通知而不干扰其他应用程序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-13 10:12:23

不,Android不发送任何通知,比如“嘿,有些应用程序刚刚在HCE上被激活了”。因此,您不能在您的应用程序中获得这样的事件。具体来说,它不可能监控设备上现有的HCE应用程序(它不在你的控制下)是否已经通过HCE激活。

您可以做的是创建您自己的HCE服务(注册为您的特定应用程序AIDs)。然后,如果这个HCE服务接收到一个事务,它就可以启动一个活动(请参见How can I send message from HostApduService to an activity?):

代码语言:javascript
复制
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 }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36402419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档