java - 即时应用上的叠加权限
问题描述
我正在尝试使用从即时应用程序触发的“浮动小部件”,为此我需要获得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 }
是否有可能无法从即时应用程序中获得此权利?(安装的应用程序运行良好)
解决方案
Instant Apps 对 PackageManager 的看法有限。我没有一个很好的参考来确定设置 - 或者特别是这个活动 - 是不可见的。但期望应该是大多数包中的大多数活动是不可见的。
即使您能够访问此活动(或者,如果您只是作为用户访问,通过在“设置”应用中导航到该活动),您的免安装应用也不会被允许获得此权限。出于技术原因(因为 PackageManager 通常不知道即时应用程序,至少在 O 之前的版本中)和政策。具体来说,覆盖意味着某种程度的后台操作,这在FAQ中是不允许的。(另请注意,该页面的允许权限列表中未列出覆盖。)
推荐阅读
- google-cloud-storage - 授予权限以检查请求者的计算主机名
- java - Hibernate:检索@OneToMany 关联是否比检索@ElementCollection 列表更快?
- php - API 参数命名方案
- python - 对列执行计数功能并将字符串结果附加到列
- docker - 有什么方法可以将 ASP.NET Core 3.1 应用遥测从本地主机上的 Docker 容器发送到 ApplicationInsights?
- leaflet - 带有传单的标记信息表示
- python - 为 OCR 检测和分割图像
- c# - 如何解决我的扩展库中的扩展方法歧义错误?
- html - 使用css隐藏html表中的特定列
- html - 限制特定页面在 WKWebview 中加载?