自动化零件商城(www.rssme.com)专业PLC,变频器,直线模组,触摸屏,控制器,传感器等自动化商品网上购物商城,为广大中小工业企业提供优质、低价格和种类齐全的自动化零件。
文章目录

前言

简单记录一下Android普通应用权限检查是否拥有,如果没有权限就跳转Android系统设置让用户开启。这里以

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

悬浮窗权限为例。

简单记录于此,方便自己查阅。

正文

AndroidManifest.xml

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

MainActivity

在MainActivity中进行权限检查和申请,下面用的申请方式必须继承AppCompatActivity

public class MainActivity extends AppCompatActivity {
    //略
}

创建ActivityResultLauncher对象

private final ActivityResultLauncher<Intent> mActivityResultLauncher = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult o) {
                //虽然返回,但还是再次检查
                checkPermission();
            }
        });

权限检查

private void checkPermission() {
    boolean canOverlays = Settings.canDrawOverlays(App.context);
    //判断是否有权限
    if (!canOverlays) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
        mActivityResultLauncher.launch(intent);
    }else{
        //有权限,就启动悬浮窗
    }
}

checkPermission()的调用放onCreate()中或当需要开启悬浮窗之前都可以。

参考文章

相关文章

自动化零件商城(www.rssme.com)专业PLC,变频器,直线模组,触摸屏,控制器,传感器等自动化商品网上购物商城,为广大中小工业企业提供优质、低价格和种类齐全的自动化零件。

暂无评论

none
暂无评论...