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;}

以上,作一个记录。

更多相关文章

  1. Android命令行编译方法,不用Eclipse IDE
  2. android开发-界面设计基本知识Ⅲ
  3. android4.3 截屏功能的尝试与失败分析
  4. Android平台中Wifi的初始化
  5. Unity3D与android交互
  6. Android之使用AchartEngineActivity引擎绘制柱状图、曲线图
  7. android OTA差分包的生成方法
  8. Android——发送和接收广播
  9. android API之ActivityGroup

随机推荐

  1. Android手势识别简单封装类
  2. Android SQLite插入优化
  3. 2014.01.13 ——— android 控制ScrollVi
  4. android笔记---主界面(一)
  5. android 实现倒计时
  6. 给Android开发者的10个建议
  7. Andriod 的基本原理
  8. 【Android】如何判断一个fragment是否显
  9. android制作圆角图片和图片倒影
  10. 分享一个圆角自定义的漂亮AlertDialog