Android 从后台运行的HostApdService启动活动

Android 从后台运行的HostApdService启动活动,android,android-activity,apdu,hce,Android,Android Activity,Apdu,Hce,每次HostApduService接收到任何Apdu命令时,我都希望用一个映像启动一个活动 override fun processCommandApdu(commandApdu: ByteArray?, extras: Bundle?): ByteArray { val intent = Intent(this, ImageActivity::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) inten

每次HostApduService接收到任何Apdu命令时,我都希望用一个映像启动一个活动

override fun processCommandApdu(commandApdu: ByteArray?, extras: Bundle?): ByteArray {
    val intent = Intent(this, ImageActivity::class.java)
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    intent.setAction(Intent.ACTION_VIEW)

    startActivity(intent)

    return hexStringToByteArray("...")
}
如果我的应用程序当前处于前台,则此解决方案效果良好。否则(应用程序处于后台或未启动),即使apdu命令处理正确,活动也不会显示在屏幕上

根据doc(),应显示活动

如何在没有其他权限的情况下以这种方式启动活动?谷歌支付(GooglePay)等应用程序似乎就是这样工作的


我对解决方案不感兴趣,包括
android.permission.SYSTEM\u ALERT\u WINDOW
permission。我知道可以使用
WindowManager
WindowManager.LayoutParams.TYPE\u APPLICATION\u OVERLAY来显示视图。不幸的是,此解决方案需要明确的用户权限-重定向用户以更改设备显示设置中的值。

“不幸的是,此解决方案需要明确的用户权限-重定向用户以更改设备显示设置中的值”-《代码>系统警报窗口》也是如此。“像谷歌支付这样的应用程序似乎是这样工作的”——我不能排除这种可能性,但应用程序可以由NFC启动,而无需使用
HostApduService