您的位置:首页 > 移动开发 > Android开发

Android中6.0及以上悬浮窗申请权限

2018-01-16 16:29 453 查看
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);
}
}
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息