Android Q - 隐私更改 activity 通过 NFC 启动
Android Q - Privacy change activity start through NFC
https://developer.android.com/preview/privacy/background-activity-starts
据此,我的支付应用程序在执行 NFC 交易时显示 Activity,将无法再向用户显示任何内容。
有人知道新方法是什么吗?
谢谢!
我目前使用 NFC 服务,它启动了一个 Activity 意图。
Intent intent = new Intent(mApplicationContext, PaymentActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
mApplicationContext.startActivity(intent);
应该显示 Activity。它现在可以工作,但是从 Android Q 开始,它不会
根据 link,如果您有 HostApduService,那么您的应用在 Android Q 中应该可以正常工作。
如果您不是这种情况,最简单的解决方法是获得 "Draw over other apps" 权限。如果应用程序已被用户授予 SYSTEM_ALERT_WINDOW 权限,您可以打开活动。我已经对此进行了测试并且可以正常工作。
从技术上讲,您是在没有用户交互的情况下在其他应用程序之上展示某些内容,因此这可能是正确的方法。
https://developer.android.com/preview/privacy/background-activity-starts
据此,我的支付应用程序在执行 NFC 交易时显示 Activity,将无法再向用户显示任何内容。
有人知道新方法是什么吗?
谢谢!
我目前使用 NFC 服务,它启动了一个 Activity 意图。
Intent intent = new Intent(mApplicationContext, PaymentActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
mApplicationContext.startActivity(intent);
应该显示 Activity。它现在可以工作,但是从 Android Q 开始,它不会
根据 link,如果您有 HostApduService,那么您的应用在 Android Q 中应该可以正常工作。
如果您不是这种情况,最简单的解决方法是获得 "Draw over other apps" 权限。如果应用程序已被用户授予 SYSTEM_ALERT_WINDOW 权限,您可以打开活动。我已经对此进行了测试并且可以正常工作。
从技术上讲,您是在没有用户交互的情况下在其他应用程序之上展示某些内容,因此这可能是正确的方法。