天天看點

Android 自定義 permissionAndroid 自定義 permission

Android 自定義 permission

Android 添加自定義權限

  • permission-tree 權限的根節點,3個成員都要定義

    name 一般來說需要2個“.”;比如下面的"rust.permission.user";

    否則報錯

    INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

    icon 和 label 正常添加即可
  • permission 權限聲明,定義權限組、等級等資訊
  • uses-permission 使用權限
<!-- user define permission
         permission tree and permission -->
    <permission-tree
        android:name="rust.permission.user"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name" />
    <permission
        android:name="rust.permission.user.TEST"
        android:label="@string/app_name"
        android:permissionGroup="@string/action_settings"
        android:protectionLevel="normal" />

    <!-- use user permission -->
    <uses-permission android:name="rust.permission.user.TEST" />           

代碼中檢查是否申請了權限

使用PackageManager的方法來檢查

private static final String TestPermission = "rust.permission.user.TEST";
    ......
    checkUserPermission(getApplicationContext(), TestPermission);
    ......

    /**
     * check permission
     *
     * @param context - the application context
     */
    private void checkUserPermission(Context context, String permissionName) {
        PackageManager pm = getPackageManager();
        boolean permitTest = (PackageManager.PERMISSION_GRANTED ==
                pm.checkPermission(permissionName, getPackageName()));
        Toast.makeText(context, permitTest ? "Test YES!" : "Test NO!", Toast.LENGTH_SHORT)
                .show();
    }           

繼續閱讀