Android自定义权限

来源:互联网 发布:天涯明月刀钟汉良数据 编辑:程序博客网 时间:2024/06/05 03:58

一.概述

首先说一下为什么需要使用权限,主要就是防止其他程序随便调用。

一般我们调用系统的功能都会添加对应的权限,比如打电话,我们会添加如下的权限:

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

今天我们来看看怎么自定义权限。

二.实现

首先我们需要两个工程,在这两个工程里面分别新建一个Activity,在A工程里面启动B工程里面的Activity。

1.添加自定义权限

 <permission android:name="com.lxn.startSecond"        android:protectionLevel="normal"        />

这两个参数是必须的,含意见下表:

这里写图片描述

然后在activity中使用我们自定义的权限:

 <activity            android:name=".SecondActivity"            android:permission="com.lxn.startSecond"            android:label="@string/title_activity_second"            android:theme="@style/AppTheme.NoActionBar">            <intent-filter>                <action android:name="com.lxn.start"/>                <category android:name="android.intent.category.DEFAULT" />                </intent-filter>        </activity>

这里要注意亮点:

  • 添加权限使用android:permission
  • 因为我们要从外部启动这个Activity,所以action和category必须指定
    2.如何启动
    接下来我们回到A工程中,去启动B工程中定义好权限的Activity.
  public void start(View view){        //隐式启动        Intent intent = new Intent("com.lxn.start");        //显式启动       // intent.setClassName("com.example.dialogdemo","com.example.dialogdemo.SecondActivity");        intent.addCategory(Intent.CATEGORY_DEFAULT);        startActivity(intent);    }

这个时候要想启动B工程中的Activity,我们就必须要添加权限了,不然就无法启动

 <uses-permission android:name="com.lxn.startSecond" />
0 0