【发布时间】:2019-01-07 19:42:23
【问题描述】:
这让我发疯......因为我的智能手机有 API > 23 我的 youtube 覆盖不再工作......所以我实现了所有必要的东西。 现在,我的应用程序请求绘制叠加层的权限(SYSTEM_ALERT_WINDOW),如果我调试我的应用程序,那么我看到该权限已被授予。但是,如果我启动覆盖,我会收到此错误消息:
AndroidRuntime: 致命异常: main java.lang.RuntimeException: 无法创建服务...: android.view.WindowManager$BadTokenException: 无法添加窗口 android.view.ViewRootImpl$W@479d57e -- 窗口权限被拒绝 键入 2002
Manifest 中的权限如下:
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
我请求许可:
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, MainActivity.PERMISSIONS_REQUEST_SYSTEM_ALERT_WINDOW);
我这样检查权限:
if (Settings.canDrawOverlays(this)) {
permissionShowYoutubeOverlayIsOK = true;
}
那么,这到底是怎么回事??
感谢任何帮助!!!
再见 菲尔
【问题讨论】:
-
如果我没记错的话,这个选项应该专门由用户手动授予。
标签: android permissions