Permission Denial: package=android does not belong to uid=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() {
//在此处去真正实现你的功能
}