首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置'Other‘类别的默认服务| HCE

设置'Other‘类别的默认服务| HCE
EN

Stack Overflow用户
提问于 2015-05-16 15:01:41
回答 1查看 1.3K关注 0票数 2

如果有多个支持NFC HCE支付的服务(应用程序),则安装。这些应用程序服务在设置NFC Tap和Pay下可见。

定义了两个AID组,一个用于支付,另一个用于其他目录。

如果不是,如何以编程方式将应用程序更改为默认的“其他类别”服务?

下面是我正在执行的代码,但是没有调用对话框来为“其他类别”选择正在运行的应用程序。但是,‘支付类别’对话框打开成功。代码如下:

代码语言:javascript
运行
复制
CardEmulation cardEmulation = CardEmulation.getInstance(NfcAdapter.getDefaultAdapter(this));
    boolean isDefaultCategorySelected = cardEmulation.isDefaultServiceForAid(new ComponentName(this, MyOffHostApduService.class), "F4100000040001");

    if(!isDefaultCategorySelected(CardEmulation.CATEGORY_OTHER)){

            Intent intent = new Intent(CardEmulation.ACTION_CHANGE_DEFAULT);
        intent.putExtra(CardEmulation.EXTRA_CATEGORY, CardEmulation.CATEGORY_OTHER);
        intent.putExtra(CardEmulation.EXTRA_SERVICE_COMPONENT, new ComponentName(this, MyOffHostApduService.class));
        startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_TRANSIT_SERVICE);
        return;
    }
EN

回答 1

Stack Overflow用户

发布于 2015-10-04 15:14:47

你不能这么做。

目前仅CATEGORY_PAYMENT支持全局默认值。CATEGORY_OTHER的解析策略始终设置为SELECTION_MODE_ASK_IF_CONFLICT。因此,您的应用程序必须是在CATEGORY_OTHER中注册某个AID组的唯一应用程序,或者安卓会在交易时询问用户应该使用哪个应用程序。

不过,当您的某个活动处于前台时,您可以使用CardEmulation.setPreferredService()将您的HCE服务设置为默认服务。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30272797

复制
相关文章

相似问题

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