Android6.0 申请SYSTEM_ALERT_WINDOW权限 没有弹出权限框
来源:互联网 发布:今天原油api数据 编辑:程序博客网 时间:2024/05/19 16:33
问题:在Android6.0申请SYSTEM_ALERT_WINDOW权限,没有弹授权框?
解决:在android6.0应用开发时,动态申请权限时。按照官方文档无法申请到SYSTEM_ALERT_WINDOW权限,爬stackoverflow找到解决方案。
这个好像是一个bug,可以使用层叠权限解决【Settings.ACTION_MANAGE_OVERLAY_PERMISSION】。
解释博客
直接上代码:
private void checkPermissions(){ Log.d("MainActivity->","SDK_INT->"+Build.VERSION.SDK_INT); if(Build.VERSION.SDK_INT< 23){ return ; } /* 检查是否有悬浮窗的权限 */ if (!Settings.canDrawOverlays(this)) { isHasAlertPermission = false; Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); startActivityForResult(intent, 101); } /* 无效的方法,可以申请读取联系人的权限 */ int hasPermission = checkSelfPermission(Manifest.permission.READ_CONTACTS); if(PackageManager.PERMISSION_GRANTED !=hasPermission){ Log.d("MainActivity->","get permissions"+Build.VERSION.SDK_INT); requestPermissions(new String[]{Manifest.permission.SYSTEM_ALERT_WINDOW},100); } }
/**申请联系人等权限回调*/@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 100: if(PackageManager.PERMISSION_GRANTED == grantResults[0]){ isHasAlertPermission = true; }else { Toast.makeText(MainActivity.this,"没有获取权限",Toast.LENGTH_LONG).show(); } break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } /** 跳转到设置可以悬浮的权限 **/ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case 101: if(Build.VERSION.SDK_INT >22){ if (!Settings.canDrawOverlays(this)){ isHasAlertPermission = false; } else { isHasAlertPermission =true; } } break; default: super.onActivityResult(requestCode, resultCode, data); } }
0 0
- Android6.0 申请SYSTEM_ALERT_WINDOW权限 没有弹出权限框
- Andrid6.0申请SYSTEM_ALERT_WINDOW和WRITE_SETTINGS权限
- Android6.0权限申请
- Android6.0权限申请
- android6.0权限申请
- Android6.0权限申请
- Android6.0权限申请
- Android6.0权限申请
- Android6.0权限申请
- Android6.0+权限申请
- Android6.0权限申请模型
- Android6.0 权限申请封装
- android6.0 动态申请权限
- Android6.0重要权限申请
- Android6.0以上权限申请
- Android6.0权限申请解决方案
- Android6.0动态权限申请
- Android6.0:动态权限申请
- EL表达式中的${}出现难以查到的JasperException问题
- Hibernate(JPA)注解大全
- JSON详解
- JMS入门(四)--Topic的使用
- 机器学习中的数学基础
- Android6.0 申请SYSTEM_ALERT_WINDOW权限 没有弹出权限框
- Python 快速入门
- Notes: Email's protocol
- 【OpenCV】单目摄像头标定
- OGL纹理特征和glTexImage2D gluScaleImage glCopyTextImage2D
- 堆排序 (Java)
- String、StringBuider以及StringBuffer的区别和使用场景
- Proxool连接池,连接SQLserver2008数据库报错
- 用函数指针表实现多态