检查发送Intent的应用是否具有自定义权限

时间:2014-06-25 10:22:45

标签: android android-intent android-permissions

我有一个应用程序,广播接收器接受外部应用程序的意图, 我定义了2个权限:

  1. com.example.myapp.myProvider.permission.CREATE_SECURE_TABLE

  2. com.example.myapp.myProvider.permission.WRITE_SECURE_TABLE

  3. 当我从外部应用程序收到Intent时,我想检查它是否有:

    • 第一个权限,以防它想要创建表
    • 第二个权限,以防它想要写一个表

    请注意,创建表的应用程序不是编写表的应用程序,因此创建表的应用程序不需要第二个权限,反之亦然。

    任何人都可以帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:0)

您必须定义2个单独的BroadcastReceiver,其中一个需要创建权限,另一个需要写入权限(使用android:permission属性)。

答案 1 :(得分:0)

试试这个

if (context.checkCallingOrSelfPermission(Manifest.permission.INTERNET) 
    != PackageManager.PERMISSION_GRANTED) {

    return false;
}

而不是Manifest.permission.INTERNET放置您的许可

答案 2 :(得分:0)

你无法检查,但Android会为你做。取决于您的自定义<permission>的属性android:protectionLevel,Android会确保外部应用已授予权限,然后才能调用您应用的组件。