Android学习 - 权限跳转
来源:互联网 发布:光猫超级密码开启端口 编辑:程序博客网 时间:2024/05/01 10:34
Android定义了一种权限方案来保护设备上的资源和功能。例如,在默认情况下,应用程序无法访问联系人列表、拨打电话等。下面就以拨打电话为例介绍一下系统对权限的要求。此时必须要有CALL_PHONE这个权限,这个权限是Android系统自带的phone应用里定义的权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
这告诉系统,我们的应用使用了此权限,我们有权访问拨打电话的Activity。为了保护用户资源的安全。要想使用此功能,必须在应用中声明权限信息,这样一来,在用户安装此应用时系统会从应用中提取出权限信息,告诉用户该应用使用到了哪些功能,由用户判断该应用是否损害自己的安全。
接下来才是好玩的:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test002" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <!-- 在同一应用中访问PhoneActivity也需要加上权限 --> <uses-permission android:name="scott.permission.MY_CALL_PHONE" /> <!-- 声明一个权限 --> <permission android:name="scott.permission.MY_CALL_PHONE" android:protectionLevel="normal" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.test002.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.test002.SecondActivity" android:permission="scott.permission.MY_CALL_PHONE" > <intent-filter> <!-- 注意这个action 在其他应用中可使用此action访问此Activity --> <action android:name="scott.intent.action.MY_CALL" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application></manifest>
在声明权限时需要一个android:protectionLevel的属性,它代表“风险级别”。必须是以下值之一:normal、dangerous、signature、signatureOrSystem。
normal表示权限是低风险的,不会对系统、用户或其他应用程序造成危害。
dangerous表示权限是高风险的,系统将可能要求用户输入相关信息,才会授予此权限。
signature告诉Android,只有当应用程序所用数字签名与声明此权限的应用程序所有数字签名相同时,才能将权限授给它。
signatureOrSystem告诉Android,将权限授给具有相同数字签名的应用程序或Android包类,这一级别适用于非常特殊的情况,比如多个供应商需要通过系统影像共享功能时。
另外一个是android:permissionGroup属性,表示一个权限组。可以将权限放在一个组中,但对于自定义权限,应该避免设置此属性。如果确实希望设置此属性,可以使用以下属性代替:android.permission-group.SYSTEM_TOOLS。
其他项目想通过:Intent intent = new Intent("scott.intent.action.MY_CALL"); startActivity(intent);访问SecondActivity就必须加上权限:
<uses-permission android:name="scott.permission.MY_CALL_PHONE"/>
0 0
- Android学习 - 权限跳转
- Android跳转权限设置页面
- android 6.0 跳转到设置权限界面
- android 跳转到应用权限设置界面
- android跳转至权限设置界面
- android 跳转当前app权限页面
- Android学习 - android权限
- #Android学习#Android权限
- Android Activity跳转学习笔记
- android学习记录-activity跳转
- Android学习【Activity界面跳转】
- android学习 页面和跳转
- 【android学习】Android权限permission
- 【Android基础学习】Android权限
- Android权限学习之请求权限实例
- android开发 华为 点击跳转到权限管理页面
- android开发 华为 点击跳转到权限管理页面
- android开发 华为 点击跳转到权限管理页面
- 1 基本类型和控制结构
- python的threading和multiprocessing模块初探
- 黑马程序员---java基础 -----基础知识,运算符,循环等
- 蓝桥杯---地宫取宝(记忆搜索=搜索+dp)
- poj2513—并查集+欧拉回路+线段树
- Android学习 - 权限跳转
- 子串和
- 决策树实战:从原理到实现
- 十七、类与对象:UML简介
- APP吃什么-经验
- android drawable Layer List
- java 程序初始化顺序
- MyBatis批量新增、更新
- LeetCode155:Min Stack