Android中6.0及以上悬浮窗申请权限
16lz
2021-01-26
1.判断版本、权限
try{
//判断当前系统版本 if(Build.VERSION.SDK_INT>=23) {
//判断权限是否已经申请过了(加上这个判断,则使用的悬浮窗的时候;如果权限已经申请则不再跳转到权限开启界面) if (!Settings.canDrawOverlays(this)){
//申请权限 Intent intent2=new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivityForResult(intent2, 1); }else{
//创建悬浮窗 Intent intent3 = new Intent(MainActivity.this, MenuService.class); startService(intent3); } }else{ Intent intent3 = new Intent(MainActivity.this, MenuService.class); startService(intent3); } System.out.println("Build.VERSION.SDK_INT::::"+Build.VERSION.SDK_INT);}catch (Exception e){ e.printStackTrace();}
2.回调结果
@RequiresApi(api = Build.VERSION_CODES.M)protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if(Build.VERSION.SDK_INT>=23) { if (!Settings.canDrawOverlays(this)) { Toast.makeText(MainActivity.this, "权限授予失败,无法开启悬浮窗", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "权限授予成功!", Toast.LENGTH_SHORT).show(); //创建悬浮窗 Intent intent = new Intent(MainActivity.this, MenuService.class); startService(intent); } } }}
更多相关文章
- android去权限反编译,签名,zipalign优化
- selinux mode DAC and MAC
- Android适配概要
- android 6.0 权限崩溃分析:android.system.ErrnoException: statv
- Vue项目判断 是移动端还是PC , 微信 , iOS , 安卓
- Unity Android(安卓)Usb 通信
- Android权限系统(二):开机授予运行时权限
- make_ext4fs 文件权限控制
- 阿里巴巴人脸离线活体识别Android