android自定义权限可能出现的问题

为了方便描述,这里先定义两个app的名字:
调用方:A
被调用方:B
A调用B的Activity名字:AActivity
被调用方的Activity名字:BActivity
一个很可能出现的异常:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=xxx/.xxx.BActivity } from null (pid=3202, uid=2000) requires xxx.permission

在B的manifest.xml的manifest标签里定义自定义权限(signature代表同样签名的app才可以调用)


还需要在B的manifest.xml里写上类似下面的代码,注意最好添加android:exported="true",虽然如果intent-filter下面有action会默认android:exported为true,但是最好还是写上,因为即使有action也可以将android:exported设置为false的
(例如这里叫BActivity)
(如果需要隐藏这个app的图标,就添加类似下面的data属性)


  
    
    
    
  

然后在A的manifest.xml的manifest标签里写上,否则如果先安装A再安装B会出现上面说的授权错误


你可能感兴趣的:(android自定义权限可能出现的问题)