安卓学习 权限Permission

来源:互联网 发布:面试淘宝美工常见问题 编辑:程序博客网 时间:2024/04/30 02:44

声明与使用权限

  • 在manifest文件中通过<permission android:name="包名.权限名" />标签可以声明权限
  • 使用<uses-permission android:name="" />标签可以使得该APP可以使用该权限

在代码中检查权限

  • 检查权限的方法需要Context来获取该APP的一些全局属性
  • 通过Context的checkCallingOrSelfPermission(PermissionName)方法获得一Int值,该值代表了APP是否具有这一权限。该Int值有两种情况,分别为PackageManager.PERMISSION_GRANTED(有权限)和PackageManager.PERMISSION_DENIED(无权限)
  • 根据该值来判断程序的运行方向
public void sayHello(Context context) {    checkPermission(context);    System.out.println("你好~!");}public void checkPermission(Context )    int check = context.checkCallingOrSelfPermission(PERMISSION_SAYHELLO);    if (check != PackageManager.PERMISSION_GRANTED) {        throw new SecurityException("缺少" + PERMISSION_SAYHELLO + "权限");    }}

为Activity配置权限

  • 在manifest文件中可以通过<activity android:name=".MyActivity" android:permission="PermissionName" />方式声明启动该Activity需要哪些权限,如果该权限属于该APP(既该manifest文件中的permission标签包含该权限),那么即使没有<uses-permission android:name="PermissionName" />说明使用该权限也可以直接启动
  • 如果外部程序需要启动该Activity则需要在程序中通过<uses-permission android:name="" />标签来声明将要使用该权限才可以使用

若使用上文中提到的checkCallingOrSelfPermission方法来判断权限有无,无论是否是本程序声明的权限都需要<uses-permission>标签声明后才可以通过权限检查

0 0
原创粉丝点击