Android 自定义Permission;permission-tree;permission-group自定义(权限,权限组,权限树)

本文介绍了Android中自定义权限的步骤,包括在AndroidManifest.xml中定义权限,设置protectionLevel,以及如何在应用间调用。同时提到了自定义权限组和权限树的类似用法,建议遵循Android的命名方案。通过声明权限并启动带有自定义权限的组件,实现权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android的自定义权限还是非常简单的。我就按照应用场景来讲吧。

定义与设置自定义权限:

    当b应用启动a应用的组建(可以是Activity,Service,BroadcastReceiver等)时,如果没有设置权限,那么将无法使用。

那么就需要给a应用制定的组建设置一个Permission就可以了。

第一步:得先自定义一个权限,才有自定义权限可以被使用。所以在AndroidManifest.xml文件中如下代码:同时自定义权限组和自定义权限树的用法与此相同。通常应该遵循Android的命名方案(*.permission.*)但非必须.

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.    package="com.example.flyko.myapplication" >
  4. <permission android:name="com.xzq.permission.flykozhang"
  5. android:protectionLevel="normal"/>
  6. <permission-group android:name="com.xzq.permission.flykozhang.group" android:protectionLevel="normal"/>
  7. <permission-tree android:name="com.xzq.permission.flykozhang.tree" android:protectionLevel="normal"/>
  8. </manifest>

添加权限:

双击AndroidManifest.xml文件,打开permissions选项卡,在Permissions窗口中单击Add按钮,选择Permission,然后单击ok按钮,添加一个新的Permission:

权限的特性:

Android:name权限的名称,必填属性,通常应该遵循Android的命名方案(*.permission.*)但非必须。

android:protectionLevel定义与权限相关的保护级别,必填属性。必须选择一下四项之一:normal、dangerous、signature、signatureOrSystem。

android:permissionGroup非必填属性,可以将权限放在一个组中,但对于自定义权限,尽量不要设置此属性了。

android:label非必填属性,含义你应该明白。

android:description非必填属性,含义你应该明白。

android:icon非必填属性,含义你应该明白。

第二步:自定义的权限都定义好了,那就没话说了,直接拿来用呗。

  1. <activity
  2.    android:permission="com.xzq.permission.flykozhang"
  3.    android:name=".MainActivity"
  4.    android:theme="@style/AppBaseTheme">
  5. </activity>

自定义权限的定义和使用都ok了,现在没话说了,就看看b应用如何调用设置了自定义权限的组建吧。

调用设置了自定义权限的组建:

第一步:在b应用中使用时,先在AndroidManifest.xml文件声明要是用的权限。和系统其他权限声明方式一样,如下代码。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.    package="com.example.flyko.myapplication" >
  4.    <uses-permission android:name="com.xzq.permission.flykozhang" />
  5. </manifest>

第二步:在代码中启动带有自定义权限的组建。

  1. public class MainActivity extends Activity {
  2.    @Override
  3.    public void onCreate(Bundle savedInstanceState) {
  4.       super.onCreate(savedInstanceState);
  5.       setContentView(R.layout.main);
  6.       ((Button) findViewById(R.id.button1))
  7.              .setOnClickListener(new View.OnClickListener() {
  8.                  @Override
  9.                  public void onClick(View v) {
  10.                     Intent intent = new Intent();
  11.                     intent.setClassName("com.xzq.custompermission",
  12.                            "com.xzq.permission.flykozhang");
  13.                     startActivity(intent);
  14.                  }
  15.              });
  16.    }
  17. }

完了。。是不是很简单~~~~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值