Android应用中定义权限的基本方法
来源:互联网 发布:公交数据接口 编辑:程序博客网 时间:2024/06/08 18:23
1、定义和声明定制权限
应用可以在其AndroidManifest.xml中定义自己专属的权限,具体的操作如下:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="stark.a.is.zhang.photogallery"> <!--利用permission属性,定义应用专属的权限--> <!--protectionLevel定义了该权限的安全级别 --> <permission android:name="stark.a.is.zhang.photogallery.Private" android:protectionLevel="signature"/> ..................... <!--定义了权限后,以正常的方式使用 --> <uses-permission android:name="stark.a.is.zhang.photogallery.Private"/>............
2、权限的安全级别
自定义权限必须指定android:protectionLevel属性值。
Android系统将根据protectionLevel属性确定自定义权限的使用方式。
目前android定义了四种安全级别:
1、normal
normal用于修饰低风险权限,只要在APK在AndroidManifest.xml中申请了就可以使用。
在APK安装时,可以看到相应的安全级别,但不需要用户确认授权。
2、dangerous
dangerous用于修饰高风险权限,APK使用这类权限时,系统会明确要求用户进行确认。
3、signature
signature安全级别表明,如果其它应用需要使用当前应用自定义的权限,
则必须使用和当前相同的key做签名认证。
对于仅限应用内部使用的权限,选择signature安全级别比较合适。
权限授予时,系统不会通知用户。
4、signatureOrSystem
主要针对系统应用之间的通信。
当在系统应用中,定义该安全级别的权限时,其它系统应用均可以申请该应用的授权。
对于普通应用(非系统),该权限的用途退化到与signature级别一致。
3、使用举例
例如,在应用中定义一个服务。
在AndroidManifest.xml中,指定启动服务必须要有上文定义的定制权限。
............<service android:name=".service.JobPollService" android:permission="stark.a.is.zhang.photogallery.Private" android:exported="true"/>............
此时,其它签名不一致的应用,即使知道了service的包名和类民,也无法利用startService的方式,显示启动该service。
此外,在发送接受广播时,Context中同样定义了如下接口:
..............//要求广播接受器所在应用,必须有receiverPermission对应的权限public abstract void sendBroadcast(@RequiresPermission Intent intent, @Nullable String receiverPermission);.............//注册广播接受器,仅接受持有broadcastPermission的应用发出的广播@Nullablepublic abstract Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler);.............
通过这种方式,可以将广播的发送范围限制在具有相同权限的一组应用中,避免信息的泄露。
- Android应用中定义权限的基本方法
- Android中获得应用的权限信息
- 【android】五种控制Android应用的权限的方法
- Android开发中颜色的定义方法
- android开发中颜色的定义方法
- Android开发中颜色的定义方法
- Android开发中颜色的定义方法
- Android开发中颜色的定义方法
- unity调用Android中定义的方法
- 五种控制Android应用的权限的方法
- 五种控制Android应用的权限的方法
- 五种控制Android应用的权限的方法
- 五种控制Android应用的权限的方法
- 五种控制Android应用的权限的方法
- Android 应用权限管理默认开关的修改方法
- 控制Android应用权限的五种方法
- Android的基本权限大全
- Android的基本权限大全
- docker修改image名字
- 【matlab】solve 与 fsolve 的用法及个人的一点思考
- SharePoint 2016 如何搜索外网内容
- C#开发人员应该知道的13件事情
- python strip()
- Android应用中定义权限的基本方法
- spring笔记
- Linux 常用命令
- Android Activity的四种launchMode
- ng面试题整理
- android学习之文本显示走马灯
- python之urllib模块urlretrieve()函数初窥
- java反射之Class类
- Linux 安装字体