Android checkCallingPermission()メソッドの戻り値の問題
Androidがチェック権限を開発すると、checkCallingPermission()を呼び出すと常に値-1が返され、Binder.getCallingPid() == Process.myPid()はいつもtrueに戻っていて、理解できません.
インターネットで資料を調べたところ、AIDLを使用する際にIPC(interprocess communication)メソッドで上記の2つのメソッドを呼び出してこそ、所望の値が得られることが分かった.すなわち、次の方法は、リモート・サービスのリモート・メソッドでのみ呼び出されます.
以上、1つの記録をします.
インターネットで資料を調べたところ、AIDLを使用する際にIPC(interprocess communication)メソッドで上記の2つのメソッドを呼び出してこそ、所望の値が得られることが分かった.すなわち、次の方法は、リモート・サービスのリモート・メソッドでのみ呼び出されます.
// permission
// IPC(interprocess communication)
public static boolean checkPermission(Context context, String permission) {
//
if (Binder.getCallingPid() == Process.myPid()) {
return true;
}
if (context.checkCallingPermission(permission) == PackageManager.PERMISSION_GRANTED) {
return true;
}
return false;
}
以上、1つの記録をします.