Android 的权限级别总共有4种
android:protectionLevel=[“normal” | “dangerous” | “signature” | “signatureOrSystem”]
normal: 低风险的权限,只要申请了就可以使用,在AndroidManifest.xml 中添加uses-permission
标签,安装时不需要用户确认;正常的权限涵盖了应用需要访问其沙盒外部数据或者资源,但对用户的隐私或者其他应用操作风险很小。dangerous: 高风险权限,安装时需要用户确认才可以使用。危险的权限常常设计用户隐私的信息,数据或者资源,或者对用户存储的数据或者其他应用的操作产生影响。
signature: 只有当申请权限的应用程序 (Android app) 的数字签名与 声明此权限的应用程序的数字签名相同时(如果是申请系统权限,则需要与系统签名相同),才能将权限授予它。
这句话是什么意思呢,关于signature 的权限,举一个应用场景,其实两个app
之间是可以互相调用的,只要这两个app 是同一个开发者的签名。
- signatureOrSystem:签名相同,或者申请权限的应用为系统应用(在system image中)。
下面用 http://www.voidcn.com/article/p-mxagzhgo-en.html 这篇文章里面的例子来说明
权限是在signature 的情况下, 创建两个应用(App,App1)只允许具有相同的签名的广播才可以接收;
App应用创建接收广播:
public class TestBroadReceiver extends BroadcastReceiver {
//广播的Action
public static final String ACTION = "test_broad_cast_receiver";
//传递值的Key
public static final String KEY = "key";
@Override
public void onReceive(Context context, Intent intent) {
String data = "";
if (inten