嗨,我创建了一个扩展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始终需要向终端返回一些字节,但是我不希望它并且想要禁用/暂停它,直到另行通知

最佳答案

禁用:

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)


您也可以尝试在“共享首选项”中保存启用/禁用状态

10-05 21:29