最近开发了两个App,其中一个App为另一个App提供服务(Service),但要求不允许其他的App使用此服务,一开始的想法是能在API的设计上进行过滤,后来想想此方法不是很安全,被别人反编译后很危险!后来经过一番探索发现,可以用自定义permission来解决此问题。

    首先得在AndroidManifest.xml中自定义一个permission,其中android:protectionLevel属性定义的次permission使用的级别,这里我指定的是相同签名的App才拥有此权限,还有其他的一些级别大伙可以去看看

<permission android:name="com.tubb.permission.MYSERVICE" android:protectionLevel="signature"></permission>
     其次在我们的Service中使用此权限,这样只有和此App拥有相同的签名App才能够使用此Service,如果其他App使用此服务的话,会报权限错误!
<service android:name="com.example.custompermission.MyService" android:permission="com.tubb.permission.MYSERVICE" android:exported="true"></service>

最新文章

  1. 耗时两月,NHibernate系列出炉
  2. zookeeper分布式锁实现
  3. JavaScript使用接口
  4. CentOs6.5下安装svn
  5. C++基础入门
  6. &quot;旋转的风车&quot;----windows(GDI)绘图
  7. NavigationController popToViewController跳转之前任意ViewController方法
  8. js将html5日期格式转为long型
  9. c#做动态(gif)中文验证码
  10. swift官方文档中的switch中case let x where x.hasSuffix(&quot;pepper&quot;)是什么意思?
  11. CSS负边距自适应布局三例
  12. Animator Override Controllers 学习及性能测试
  13. 元器件选型(一)ESD、TVS参考资料
  14. 在Hadoop2.2基础上安装Spark(伪分布式)
  15. 牛客网 272B Xor Path(树上操作)
  16. JsonIgnore注解不起作用的解决办法
  17. .Net Core---- 自带Json返回日期带T格式 解决
  18. DataSet结果转模型类
  19. Docker中如何删除image(镜像)
  20. Lua和C++交互 学习记录之二:栈操作

热门文章

  1. nodejs环境使用jshint
  2. Xcode 中的IOS工程模板
  3. Oracle VM VisualBox 虚拟机创建共享文件夹。
  4. Duplicate Elimination in Scrapy(转)
  5. Monotouch/WCF: How to consume the wcf service without svcutil
  6. 关于Hyper-V备份的四大注意事项
  7. Unity3d Http Get请求
  8. Ubuntu安装Oracle时出现乱码,及其他安装错误
  9. C#常使用的正则表达式
  10. [Linux] 关于Unix哲学