Android 系统警报窗口的运行时权限

Android 系统警报窗口的运行时权限,android,runtime-permissions,Android,Runtime Permissions,当用户第一次打开应用程序时,我需要自动获取以下权限的用户权限 电话 通话记录 始终在最上面 电话工作正常。如何获得“始终在顶部”权限 主要活动 protected void onCreate(Bundle savedInstanceState) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SYSTEM_ALERT_WINDOW) != PackageM

当用户第一次打开应用程序时,我需要自动获取以下权限的用户权限

  • 电话
  • 通话记录
  • 始终在最上面
  • 电话工作正常。如何获得“始终在顶部”权限

    主要活动

    protected void onCreate(Bundle savedInstanceState) {
        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SYSTEM_ALERT_WINDOW)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SYSTEM_ALERT_WINDOW}, 1);
        }
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    显示

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

    没有用于此目的的运行时权限/对话框,您必须将用户设置传递给应用程序

    public boolean checkStartPermissionRequest() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (!Settings.canDrawOverlays(this)) {
                Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + getPackageName()));
                startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
                return false; // above will start new Activity with proper app setting
            }
        }
        return true; // on lower OS versions granted during apk installation
    }
    

    更多信息

    没有用于此目的的运行时权限/对话框,您必须将用户设置传递给应用程序

    public boolean checkStartPermissionRequest() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (!Settings.canDrawOverlays(this)) {
                Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + getPackageName()));
                startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
                return false; // above will start new Activity with proper app setting
            }
        }
        return true; // on lower OS versions granted during apk installation
    }
    

    更多信息

    此代码的作用是什么?希望获得“始终在顶部”的权限,但不是询问此代码的作用是什么?希望获得“始终在顶部”的权限,但不是询问