- 浏览: 513247 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
fatherican:
写的好。
Netty 4 源码分析——EventExecutor -
hong52533:
大哥,请问你用 groovy Httpbuilder post ...
groovy 操作http请求 -
DEMONU:
能详细讲讲代码实现就更好了
Activemq中的KahaDB消息日志的恢复机制 -
plmmmmlq:
爱死你了,困惑我几天的问题终于解决了。自定义dialog中加载 ...
解决Android帧动画在Oncreate中启动只显示第一帧 -
517505440:
org.springframework.beans.facto ...
Apache XBean 简单介绍
在android系统的安全模型中,应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作。如果应用需要执行某些操作,就需要声明使用这个操作对应的权限。 (在manifest文件中 添加<uses-permission>标记)
android 系统提供了一系列这样的权限,具体可以查看android 权限,另外,android系统在新的版本中会增加一些permission,可以查看android 版本信息。
当然,app也可以自定义属于自己的permission 或属于开发者使用的同一个签名的permission。定义一个permission 就是在menifest文件中添加一个permission标签。
android:description :对权限的描述,一般是两句话,第一句话描述这个权限所针对的操作,第二句话告诉用户授予app这个权限会带来的后果
android:label: 对权限的一个简短描述
android:name :权限的唯一标识,一般都是使用 报名加权限名
android:permissionGroup: 权限所属权限组的名称
android:protectionLevel: 权限的等级,
normal 是最低的等级,声明次权限的app,系统会默认授予次权限,不会提示用户
dangerous 权限对应的操作有安全风险,系统在安装声明此类权限的app时会提示用户
signature 权限表明的操作只针对使用同一个证书签名的app开放
signatureOrSystem 与signature类似,只是增加了rom中自带的app的声明
android:name 属性是必须的,其他的可选,未写的系统会指定默认值
下面通过指定一个BroadcastReceiver的权限来实验
首先创建了两个app,app A ,app B ;
app A中注册了一个BroadcastReceiver ,app B 发送消息
app A的menifest文件:
app B 的menifest 文件内容
这样app B 给app A 发送消息,A就可以收到了,若未在app B的menifest文件中声明使用相应的权限,app B发送的消息,A是收不到的。
另外,也可在app B 的menifest文件中声明权限时,添加android:protectionLevel=“signature”,指定app B只能接收到使用同一证书签名的app 发送的消息。
android 系统提供了一系列这样的权限,具体可以查看android 权限,另外,android系统在新的版本中会增加一些permission,可以查看android 版本信息。
当然,app也可以自定义属于自己的permission 或属于开发者使用的同一个签名的permission。定义一个permission 就是在menifest文件中添加一个permission标签。
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />
android:description :对权限的描述,一般是两句话,第一句话描述这个权限所针对的操作,第二句话告诉用户授予app这个权限会带来的后果
android:label: 对权限的一个简短描述
android:name :权限的唯一标识,一般都是使用 报名加权限名
android:permissionGroup: 权限所属权限组的名称
android:protectionLevel: 权限的等级,
normal 是最低的等级,声明次权限的app,系统会默认授予次权限,不会提示用户
dangerous 权限对应的操作有安全风险,系统在安装声明此类权限的app时会提示用户
signature 权限表明的操作只针对使用同一个证书签名的app开放
signatureOrSystem 与signature类似,只是增加了rom中自带的app的声明
android:name 属性是必须的,其他的可选,未写的系统会指定默认值
下面通过指定一个BroadcastReceiver的权限来实验
首先创建了两个app,app A ,app B ;
app A中注册了一个BroadcastReceiver ,app B 发送消息
app A的menifest文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testbutton" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" /> <!-- 声明权限 --> <permission android:name="com.example.testbutton.RECEIVE" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" launcheMode="singleTask" android:configChanges="locale|orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@style/android:style/Theme.NoTitleBar.Fullscreen" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 注册Broadcast Receiver,并指定了给当前Receiver发送消息方需要的权限 --> <receiver android:name="com.example.testbutton.TestButtonReceiver" android:permission="com.example.testbutton.RECEIVE" > <intent-filter> <action android:name="com.test.action" /> </intent-filter> </receiver> </application> </manifest>
app B 的menifest 文件内容
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testsender" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" /> <!-- 声明使用指定的权限 --> <uses-permission android:name="com.example.testbutton.RECEIVE" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
这样app B 给app A 发送消息,A就可以收到了,若未在app B的menifest文件中声明使用相应的权限,app B发送的消息,A是收不到的。
另外,也可在app B 的menifest文件中声明权限时,添加android:protectionLevel=“signature”,指定app B只能接收到使用同一证书签名的app 发送的消息。
发表评论
-
Ant使用xmltask替换AndroidManifest.xml文件中的配置
2013-08-19 10:48 7221新的游戏项目上线后,接了很过国内的推广渠道的SDK,其中一 ... -
ADB server didn't ACK
2013-06-27 15:02 2618用数据线连接android手机到pc,却在eclipse中De ... -
解决ADT插件升级22.0.1版本后的问题
2013-06-27 09:12 2306昨天升级了android的开发的eclipse插件adt,升级 ... -
Android链式方法显示Dialog
2013-06-26 17:24 1421发现Android中的AlertDialog原来可以使用方法链 ... -
解决Android帧动画在Oncreate中启动只显示第一帧
2013-06-26 17:18 7125做了个简单的帧动画,在onCreate方法中start,发现只 ... -
Android Too many open files
2013-02-01 22:11 0在eclipse 中运行android项目时提示 Fail ... -
Android 系统启动时自启动一个app
2013-02-01 16:07 9593Android中也可很方便的实现类似windows中的开机启动 ... -
Android中获取设备的IP
2013-01-28 16:47 3939在wifi环境下,可以通过WifiInfo来获取设备的ip ... -
编写App的开场Activity
2013-01-28 16:03 1733在android的app和游戏的应用中,都会有个开场场景,老外 ... -
扩展ImageView使可旋转
2013-01-13 15:19 5410继承ImageView,增加angle属性,重写OnMeasu ... -
eclipse ADT插件安装碰到的错误
2012-04-10 15:21 2552下午换了台机器,重新给eclipse装上ADT插件,过程中碰到 ... -
如何避免android上的进程的内存限制
2011-07-11 11:54 4345The Android framework enforces ... -
解决eclipse中overlaps the location of another project: 'xxxx'
2011-07-05 20:18 36162new -> android project -> ... -
【转】介绍线性代数
2011-06-30 18:42 1413这里转一个别人写的对 ... -
HTC主机序列号S/N解析
2011-06-30 12:10 1690S/N: SSYWWPPZZZZZ SS: 产地代码 HT、 ... -
Android一级目录介绍
2011-06-30 11:17 1263一级目录介绍如下所示: |-- bionic //A ... -
Android /system 目录解析
2011-06-30 11:07 3290android中默认并没有文件管理器,安装第三方文件管理器后, ... -
浅析Android.jar文件中的包
2011-06-30 10:55 1115在Android开发中,绝大部分开发用的工具包都被封装到一个名 ... -
HTC desire (G7) root获取
2011-06-30 10:21 3654为什么要root,这个不用 ... -
Android中TextView的相应属性
2011-06-28 16:29 2157android:autoLink设置是否当 ...
相关推荐
2. 使用权限:接着,在需要用到这个自定义权限的组件(Activity、Service等)上添加`<uses-permission>`标签,声明对该权限的需求: ```xml <uses-permission android:name="com.example.myapp.CUSTOM_PERMISSION" /...
在Android项目的`AndroidManifest.xml`文件中,使用`<permission>`标签声明自定义权限。例如: ```xml <permission android:name="com.example.MY_PERMISSION" android:protectionLevel="signature"/> ``` 其中...
如果一个权限依赖于另一个权限,可以在`<permission>`标签中使用`<permission-group>`子标签来声明。此外,还可以使用`<permission-tree>`来创建一个权限树,方便管理相关的一系列权限。 在多应用环境中,自定义...
- `<permission>`:声明自定义权限。 - `<application>`:定义应用级别的组件和属性。 **2. `<application>` 标签** - **属性**: - `android:label`:应用的名称。 - `android:icon`:应用图标资源。 - `...
<permission-group/> <instrumentation/> <uses-sdk/> <uses-configuration/> <uses-feature/> <supports-screens/> </manifest> ``` #### 三、各节点详细介绍 ##### 1. 第一层 - `manifest` 节点 - **1.1 ...
<uses-permission android:name="android.permission.READ_CONTACTS" /> ``` 2. **请求权限**:在API 23及以上版本,你需要在运行时检查并请求危险权限。可以使用`ActivityCompat.checkSelfPermission()`来检查权限...
2. **使用权限**:在需要使用自定义权限的Activity或Service等组件中,添加<uses-permission>标签引用该权限: ```xml <uses-permission android:name="com.example.myapp.CUSTOM_PERMISSION"/> ``` 3. **检查权限*...
每个元素都有其特定的含义和功能,如`<uses-permission>`用于声明应用所需的权限,`<permission>`用于定义自定义权限,`<instrumentation>`用于指定测试组件,而`<application>`则包含所有应用程序级别的组件和属性...
Android自定义权限允许开发者为自己的应用程序创建特定的权限,以便更好地控制用户访问敏感数据或执行特定操作。这篇博客将深入探讨如何在Android项目中实现自定义权限的使用。 首先,我们要了解Android权限的基础...
- `<uses-permission android:name="android.permission.INTERNET"></uses-permission>` - `<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>` - `<uses-...
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_...
在需要使用自定义权限的组件中,需要通过`<uses-permission>`标签声明: ```xml <uses-permission android:name="com.example.MY_PERMISSION"/> ``` 这样,其他应用如果想要访问这些功能,就必须请求此权限。 ...
- `<permission>`:声明自定义权限,控制其他应用对组件的访问。 - `<permission-group>`:定义权限组,便于管理和展示权限。 - `<instrumentation>`:声明测试代码。 - `<uses-sdk>`:指定最低SDK版本。 - `...
除了`uses-permission`,还有其他与权限相关的标签,如`<permission>`、`<permission-group>`和`<permission-tree>`。`<permission>`用于自定义权限,这在需要为应用创建专属权限时使用。它的属性包括`name`、`...