zoukankan      html  css  js  c++  java
  • Android学习笔记——自定义permission

    最近在配置BroadcastReceiver的时候,发现一条警告,如下图:

     

    百度了一下,网上的答案基本都是说把receiver标签的exported属性改为false。这样做确实是可以去掉警告,但是会引起的一个问题就是这个广播不能被其他应用程序所使用。官方文档是这样写的:

    Flag indicating whether the given application component is available to other applications.

    虽然说这只是一个警告,但本人的强迫症作祟,看着实在难受~~~于是果断查看帮助文档。终于,还是找到了问题的根本原因。

    http://developer.android.com/guide/topics/security/permissions.html

    警告的原因大概是说,如果没有给Broadreceiver或ContentProvider加上权限的话,那么其它任何程序都是可以无障碍地访问这些组件的。所以最好的解决方法就是加上一个我们自己定义的权限。官方如是说:

    To enforce your own permissions, you must first declare them in your AndroidManifest.xml using one or more <permission> tags.

     

    然后在我们的receiver中添加相应的权限就行:

     

    很好,世界清静了!

    如果想让其它程序可以调用这个接收器,那么,那个程序就要引用这个权限了。

     

    两个程序都安装之后,我们可以去看看那个调用广播的程序的权限:

     

    嗯,这个就是我们自己的权限!

    同样的道理,ContentProvider的配置也是类似的,不过ContentProvider可以将读和写两个权限分开配置,更加的细粒度。

    还有另外一个地方也是别人容易忽略的,就是有时候我们要发送的广播的动作有多个应用是一样的,比如有两个广播接收器的action都是“android.intent.action.EDIT”,那我们发送一个为该动作的广播就会调用多个广播接收器。

    这时候我们也可以使用自己定义的权限来解决。然后使用

     

    这个方法来发送广播,这样即使动作相同,也只有拥有权限的接收器可以收到。

  • 相关阅读:
    CNN comprehension
    Gradient Descent
    Various Optimization Algorithms For Training Neural Network
    gerrit workflow
    jenkins job配置脚本化
    Jenkins pipeline jobs隐式传参
    make words counter for image with the help of paddlehub model
    make words counter for image with the help of paddlehub model
    git push and gerrit code review
    image similarity
  • 原文地址:https://www.cnblogs.com/yjiyjige/p/3135085.html
Copyright © 2011-2022 走看看