美文网首页
Android6.0权限简记

Android6.0权限简记

作者: one_mighty | 来源:发表于2017-05-14 15:13 被阅读0次

    一、介绍

            Google在Android6.0之后,将手机各项权限的使用规范做了修改,由原来的在Manifest.xml文件中添加各种我们需要用到的权限,改为不仅在Manifest.xml文件中添加,而且还要动态申请。

            但并非所有权限都需要在代码中一一申请,因为Google将手机权限(Android6.0之后)Google分为了两个两个不同等级的大类,一类是Normal Permission,这类权限一般不涉及用户隐私,是不需要用户进行授权的,比如手机震动、访问网络等;另一类是Dangerous Permission,一般是涉及到用户隐私的,需要用户进行授权,比如读取sdcard、访问通讯录等,

            所有危险的 Android 系统权限都属于权限组。如果设备运行的是 Android 6.0(API 级别 23),并且应用的targetSdkVersion是 23 或更高版本时,如果应用请求其清单中列出的危险权限,而应用目前在权限组中没有任何权限,则系统会向用户显示一个对话框,描述应用要访问的权限组。对话框不描述该组内的具体权限;如果应用请求其清单中列出的危险权限,而应用在同一权限组中已有另一项危险权限,则系统会立即授予该权限,而无需与用户进行任何交互。

    下面是详细分类:

    1、Normal Permission

    ACCESS_LOCATION_EXTRA_COMMANDS

    ACCESS_NETWORK_STATE 

    ACCESS_NOTIFICATION_POLICY

    ACCESS_WIFI_STATE

    BLUETOOTH

    BLUETOOTH_ADMIN

    BROADCAST_STICKY

    CHANGE_NETWORK_STATE

    CHANGE_WIFI_MULTICAST_STATE

    CHANGE_WIFI_STATE

    DISABLE_KEYGUARD

    EXPAND_STATUS_BAR

    GET_PACKAGE_SIZE

    INSTALL_SHORTCUT

    INTERNET

    KILL_BACKGROUND_PROCESSES

    MODIFY_AUDIO_SETTINGS

    NFC

    READ_SYNC_SETTINGS

    READ_SYNC_STATS

    RECEIVE_BOOT_COMPLETED

    REORDER_TASKS

    REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

    REQUEST_INSTALL_PACKAGES

    SET_ALARM

    SET_TIME_ZONE

    SET_WALLPAPER

    SET_WALLPAPER_HINTS

    TRANSMIT_IR

    UNINSTALL_SHORTCUT

    USE_FINGERPRINT

    VIBRATE

    WAKE_LOCK

    WRITE_SYNC_SETTINGS

    2、Dangerous Permission(权限组->权限)

    CALENDAR

            READ_CALENDAR

             WRITE_CALENDAR

    CAMERA

            CAMERA

    CONTACTS

            READ_CONTACTS

            WRITE_CONTACTS

            GET_ACCOUNTS

    LOCATION

            ACCESS_FINE_LOCATION

            ACCESS_COARSE_LOCATION

    MICROPHONE

            RECORD_AUDIO

    PHONE

            READ_PHONE_STATE

            CALL_PHONE

             READ_CALL_LOG

             WRITE_CALL_LOG

            ADD_VOICEMAIL

             USE_SIP

             PROCESS_OUTGOING_CALLS

    SENSORS

            BODY_SENSORS

    SMS

            SEND_SMS

            RECEIVE_SMS

            READ_SMS

            RECEIVE_WAP_PUSH

            RECEIVE_MMS

    STORAGE

            READ_EXTERNAL_STORAGE

            WRITE_EXTERNAL_STORAGE

    二、使用

    在Android系统6.0版本中使用危险权限时(当然6.0以下正常在Manifest.xml文件中使用),需要检查该权限是否被用户授权,如果没有,申请;如果已经授权,则可以直接使用。基本的权限使用步骤如下:

    1、在清单文件Manifest.xml中添加所有使用到的权限

    <uses-permissionandroid:name="android.permission.INTERNET"/>

    2、检查是否被用户授权

    ContextCompat.checkSelfPermission(Context context, String permission);

    //checkSelfPermission方法中有两个参数,分别是上下文,以及所申请的权限。

    3、没有被用户授权时,申请权限

    public static void requestPermissions(final Activity activity,final String[] permissions, final int requestCode) {}

    //requestPermissions方法中需要三个参数,当前的activity,所申请的权限,可以是多个,

    //最后就是请求码,既然有请求码说明它会有一个回调,也就是我们下面要讲的处理回调。

    4、申请权限成功或者失败后的逻辑处理

    申请权限成功或者失败后的逻辑处理处理:需要在Activity中重写onRequestPermissionsResult方法:

    @Override

    public void onRequestPermissionsResult(int requestCode,

    String permissions[], int[] grantResults) {

    switch (requestCode) {

    case PERMISSIONS_REQUEST_READ_CONTACTS: {//请求的权限

    if (grantResults.length > 0

    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

    // 请求权限成功操作

    } else {

    //请求权限失败操作

    }

    return;

    }

    }

    }

    相关文章

      网友评论

          本文标题:Android6.0权限简记

          本文链接:https://www.haomeiwen.com/subject/hmqdtxtx.html