服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android权限控制之自定义权限

Android权限控制之自定义权限

2021-03-15 15:38Android开发网 Android

这篇文章主要介绍了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权限控制之自定义权限

点击之后

Android权限控制之自定义权限

另外我曾经在android permission权限机制引子提到过protection level问题,这边我同样测试下这个protection level,下面结果中y表示可以正常访问,n则表示不可以访问。

Android权限控制之自定义权限

需要注意的是,使用自定义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. 的错误.

延伸 · 阅读

精彩推荐
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4652021-01-03
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6182021-03-27
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810042021-05-03
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8332021-03-31
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9592022-03-02
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4622021-03-09
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7432021-03-11