即时应用的重叠权限

时间:2018-04-25 11:26:01

标签: java android android-intent overlay android-instant-apps

我正在尝试使用" Floating Widget"从即时应用程序触发,为了做到这一点,我需要得到ACTION_MANAGE_OVERLAY_PERMISSION,我应该能够这样:

intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
               Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, APP_PERMISSION_REQUEST);

不幸的是,当我尝试启动此Intent时,我收到此运行时错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.android.instantapps.samples.hellofeature/com.instantappsamples.feature.hello.HelloActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.action.MANAGE_OVERLAY_PERMISSION dat=package:com.google.android.instantapps.samples.hellofeature }

是否有可能无法从即时应用获取此权利? (已安装的应用程序正常运行)

1 个答案:

答案 0 :(得分:3)

Instant Apps的PackageManager视图有限。我没有一个很好的参考方法可以肯定地说,设置 - 或者特别是这个活动 - 是不可见的。但期望应该是大多数包装中的大多数活动都不可见。

即使您能够参加此活动(或者,如果您只是以用户身份访问,通过在“设置”应用中导航到该活动),您的即时应用也无法获得此功能允许。两者都是出于技术原因(因为PackageManager通常不了解即时应用程序,至少在pre-O版本中)以及策略。具体来说,叠加意味着某种程度的后台操作,这是FAQ不允许的。 (另请注意,叠加层未在该页面的允许权限列表中列出。)