Android权限控制之自定义权限

Android权限控制之自定义权限,第1张

概述天哪,这篇文章终于说道如何自定义权限了,左盼右盼,其实这个自定义权限相当easy。为了方便叙述,我这边会用到两个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. 的错误.

您可能感兴趣的文章:Android6.0动态申请权限所遇到的问题小结谈谈Android6.0运行时的权限处理Android6.0仿微信权限设置详解Android6.0运行时权限管理一款不错的android6.0、7.0权限管理器推荐android6.0权限动态申请框架permissiondispatcher的方法Android *** 作系统获取Root权限 原理详细解析Android获取ROOT权限的实例代码Android权限 *** 作之uses-permission详解Android需要提升权限的 *** 作方法安卓Android6.0权限动态获取 *** 作示例 总结

以上是内存溢出为你收集整理的Android权限控制之自定义权限全部内容,希望文章能够帮你解决Android权限控制之自定义权限所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1142853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存