手动禁用并启用Android HostApduService?

时间:2016-08-03 10:54:09

标签: java android nfc

您好我已经创建了一个扩展HostApduService的类,并且我想在再次恢复服务之前停止或暂停服务等待用户的一些输入。这可能吗?

我找不到任何手动停止/暂停HostApduService的API。

关于我想要它做什么的HostApduService的片段

protected byte[] processApdu(byte[] apdu) {
    if(isEnabled){
          /proccess apdu as normal
  }
}

在ui上的android中的一些动作片段

new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //disable/pause hostapdu service???
            }
        });

new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //enable/resume hostapdu service???
                }
            });

processApdu总是需要将一些字节返回给终端,但我不想要它并且想要解除/暂停它直到另行通知

1 个答案:

答案 0 :(得分:2)

要禁用:

context.getPackageManager().setComponentEnabledSetting(new ComponentName(context, MyHostApduService.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)

启用:

context.getPackageManager().setComponentEnabledSetting(new ComponentName(context, MyHostApduService.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)

您还可以尝试在共享首选项

中保存启用/禁用状态