android 6.0 badtokenexception:permission denied for this window type
时间: 2023-07-15 15:15:17 浏览: 100
详解Nginx 13: Permission denied 解决方案
5星 · 资源好评率100%
这个异常通常是由于在应用程序中试图使用不允许的窗口类型而引起的。在 Android 6.0 及以上版本中,应用程序需要在运行时请求一些敏感权限,例如窗口权限。如果未授予这些权限,则会发生 BadTokenException。
要解决此问题,您需要在应用程序的 AndroidManifest.xml 文件中添加以下权限:
```
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
然后,在运行时,您需要检查是否已授予此权限。如果没有授予,则需要请求该权限。您可以使用以下代码来检查和请求权限:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE);
} else {
// Permission granted
}
```
这将启动一个设置界面,允许用户授予应用程序窗口权限。如果用户授予了权限,则可以执行您需要的操作。
阅读全文