在即时应用程序上覆盖权限
Overlay permission on instant app
我正在尝试使用从即时应用程序触发的 "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 }
莫非免安装应用无法获得此权限?
(安装的应用程序运行正常)
免安装应用程序的 PackageManager 视图有限。我没有方便的参考资料可以肯定地说设置 - 或者特别是这个 activity - 是不可见的。但期望应该是大多数包中的大多数活动是不可见的。
即使您能够访问这个 activity(或者,如果您只是以用户身份访问,通过在“设置”应用中导航到它),您的免安装应用也不会允许获得此权限。既出于技术原因(因为 PackageManager 通常不知道即时应用程序,至少在 O 之前的版本中),也出于政策原因。具体来说,覆盖将意味着某种程度的后台操作,这是 FAQ 所不允许的。 (另请注意,覆盖未列在该页面的允许权限列表中。)
我正在尝试使用从即时应用程序触发的 "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 }
莫非免安装应用无法获得此权限? (安装的应用程序运行正常)
免安装应用程序的 PackageManager 视图有限。我没有方便的参考资料可以肯定地说设置 - 或者特别是这个 activity - 是不可见的。但期望应该是大多数包中的大多数活动是不可见的。
即使您能够访问这个 activity(或者,如果您只是以用户身份访问,通过在“设置”应用中导航到它),您的免安装应用也不会允许获得此权限。既出于技术原因(因为 PackageManager 通常不知道即时应用程序,至少在 O 之前的版本中),也出于政策原因。具体来说,覆盖将意味着某种程度的后台操作,这是 FAQ 所不允许的。 (另请注意,覆盖未列在该页面的允许权限列表中。)