Android(安卓)checkCallingPermission()方法返回值问题
16lz
2021-01-26
Android开发检查权限时,发现调用checkCallingPermission()总是返回值-1,而Binder.getCallingPid() == Process.myPid()又总是返回true,百思不得其解。
网上查资料后发现,必须是在使用AIDL时在IPC(interprocess communication)方法中调用上述两个方法,才能够得到期望的值。即下面的方法只能在远程Services的远程方法中调用。
// 检查调用者是否具有 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;}
以上,作一个记录。
更多相关文章
- Android命令行编译方法,不用Eclipse IDE
- android开发-界面设计基本知识Ⅲ
- android4.3 截屏功能的尝试与失败分析
- Android平台中Wifi的初始化
- Unity3D与android交互
- Android之使用AchartEngineActivity引擎绘制柱状图、曲线图
- android OTA差分包的生成方法
- Android——发送和接收广播
- android API之ActivityGroup