主页 > 创业  > 

PermissionDenial:package=androiddoesnotbelongtouid=2000

02-01 03:14:17.230  1685  2701 W ContextImpl: Calling a method in the system process without a qualified user: xxxxxxxxx 02-01 03:14:17.231  1685  2701 W ActivityTaskManager: Permission Denial: package=android does not belong to uid=2000

这类问题往往是调用端,即发起端无权限导致的,可增加发起端权限,或者当发起端权限无法增加时,可以尝试如下方法

假设是一个bin发起的调用,即bin通过调用AIDL接口去调用系统服务对应的接口,bin是无法加此类权限的,可以在此系统服务内加个handler

然后在此AIDL接口实现中用如下方式实现你的功能

final H mH = new H();

public void testJJJJJ() {

    mH.sendEmptyMessage(H.CALL_JAVA_CORE_INTERFACE);

}

然后通过hanler去转发我们的消息

    final class H extends android.os.Handler {         public static final int CALL_JAVA_CORE_INTERFACE = 1;         @Override         public void handleMessage(Message msg) {             switch (msg.what) {                 case CALL_JAVA_CORE_INTERFACE: {                     realFunctionName();                     break;                 }              }            }        }

 然后再实现realFunctionName就可以了,这样发起方,就由bin变为了此系统服务的handler,这样基本就不会有权限问题了。

private void realFunctionName() {      //在此处去真正实现你的功能 } 

标签:

PermissionDenial:package=androiddoesnotbelongtouid=2000由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“PermissionDenial:package=androiddoesnotbelongtouid=2000