Android权限控制之自定义权限

 更新时间:2015年04月07日 10:03:43   投稿:junjie  
这篇文章主要介绍了Android权限控制之自定义权限,本文使用两个APP作为范例,讲解如何自定义权限,需要的朋友可以参考下

天哪,这篇文章终于说道如何自定义权限了,左盼右盼,其实这个自定义权限相当easy。为了方便叙述,我这边会用到两个app作为例子示范。

Permission App: used to define a new permission
这个作为定义权限的App,我称之为Permission App.
Client App: used to access the specified activity of Permission App
这个作为访问上述自定义权限的App,我称之为Client App

先看如何写Permission App

第一步

Permission App很简单,它的任务就是定一个Permission,使用< permission>标签即可,我们假设内容如下:

复制代码 代码如下:

<permission android:name="custom.permission.STARTACTIVITY" android:description="@string/permission_dcr" android:protectionLevel=signatureOrSystem android:label="label"></permission>

第二步

然后在定一个Activity,这个Activity很简单就是展示下一行字,如”Hello from Custiom Permission Activity!”这里就不详述。

第三步

最重要的地方:我们需要为这个Activity指明访问权限,权限即为我们刚申请的权限,这个需要同样需要在AndroidManifest.xml文件中标识,如下:

复制代码 代码如下:

<activity
        android:name="com.example.custompermission.MainActivity"
        android:label="@string/app_name" android:permission="custom.permission.STARTACTIVITY"> 
</activity>

这个Activity于是就被打上了必须使用” custom.permission.STARTACTIVITY”权限才能访问的印记。

接着写Client App

至于如何写Client App,那就so so so … easy了,只需两步:

第一步

在AndroidManifest.xml文件中首先申请权限,如下:

复制代码 代码如下:

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

第二步

访问Permission App表明需要该权限的Activity,代码如下:

复制代码 代码如下:

Intent in = new Intent(); 
in.setClassName("com.example.custompermission", "com.example.custompermission.MainActivity"); 
startActivity(in);

大功告成

我们可以测试下效果,首先安装Permission App,然后接着安装Client App,结果如下:

点击之后

另外我曾经在Android Permission权限机制引子提到过Protection Level问题,这边我同样测试下这个Protection Level,下面结果中Y表示可以正常访问,N则表示不可以访问。

需要注意的是,使用自定义Permission的activity如果设置了:

复制代码 代码如下:

<activity
        android:name="com.example.custompermission.MainActivity"
        android:label="@string/app_name" android:permission="custom.permission.STARTACTIVITY"> 
<intent-filter> 
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter>

那就不能从Launcher中启动该App,因为只有你的Launcher必须使用了uses-permission去请求获取custom.permission.STARTACTIVITY权限,事实上你的Launcher是不具备已经请求自定义权限的。

Launcher会报:Application is not installed on your phone. 的错误.

相关文章

  • Android 实现APP可切换多语言步骤详解

    Android 实现APP可切换多语言步骤详解

    如果是单独给app加上国际化,其实很容易,创建对应的国家资源文件夹即可,如values-en,values-pt,这篇文章主要介绍了Android 实现APP可切换多语言,需要的朋友可以参考下
    2023-11-11
  • Android startActivityForResult()代替方案示例

    Android startActivityForResult()代替方案示例

    这篇文章主要为大家介绍了Android startActivityForResult()代替方案示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Android编程实现自定义输入法功能示例【输入密码时防止第三方窃取】

    Android编程实现自定义输入法功能示例【输入密码时防止第三方窃取】

    这篇文章主要介绍了Android编程实现自定义输入法功能,可实习输入密码时防止第三方窃取的效果,结合实例形式详细分析了Android布局、控件及输入法相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Android编程实现禁止系统锁屏与解锁亮屏的方法

    Android编程实现禁止系统锁屏与解锁亮屏的方法

    这篇文章主要介绍了Android编程实现禁止系统锁屏与解锁亮屏的方法,实例分析了Android关闭屏幕、锁屏及解锁屏幕的相关技巧,需要的朋友可以参考下
    2015-12-12
  • Android BottomSheet实现可拉伸控件

    Android BottomSheet实现可拉伸控件

    这篇文章主要为大家详细介绍了Android BottomSheet实现可拉伸控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android数据库LitePal的基本用法详解

    Android数据库LitePal的基本用法详解

    这篇文章主要介绍了Android数据库LitePal的基本用法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 一款不错的android6.0、7.0权限管理器推荐

    一款不错的android6.0、7.0权限管理器推荐

    下面小编就为大家分享一篇一款不错的android6.0、7.0权限管理器推荐,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android实现扫雷小游戏

    Android实现扫雷小游戏

    这篇文章主要为大家详细介绍了Android实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Android控件系列之TextView使用介绍

    Android控件系列之TextView使用介绍

    TextView类似一般UI中的Label,TextBlock等控件,只是为了单纯的显示一行或多行文本,本文介绍了Android中文本控件TextView的用法和常用属性的用法
    2012-11-11
  • Android Toast的用法总结(五种用法)

    Android Toast的用法总结(五种用法)

    本篇文章主要介绍了Android Toast的用法总结(五种用法),android toast几种使用方法 toast经常会用到,今天做个总结,特别是自定义toast的布局,值得一看。
    2017-01-01

最新评论