您的位置:首页 > 移动开发 > Android开发

Android自定义权限

2016-02-02 10:31 447 查看

一.概述

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

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

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


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

二.实现

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

1.添加自定义权限

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


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



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

[code] <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.

[code]  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,我们就必须要添加权限了,不然就无法启动

[code] <uses-permission android:name="com.lxn.startSecond" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: