android 6.0 新特性之权限管理(一)

android中的运行时权限

       前言:随着android 6.0的普及,android 6.0的新特性逐渐被大家所重视。其中权限模式的变化更加引起了开发人员的注意,那么就让我们一起来看看android中的运行时权限吧。


为什么要引入运行时权限:

     在android 6.0以前,权限的授予很简单,只需要在android的清单文件(AndroidManifest.xml)中直接声明即可。系统会默认用户接受此项权限,对于开发人员而言,权限的赋予是透明的,但对于用户而言,却是不明确的。用户在安装某一个APP的时候可能会被APP恶意窃取用户的隐私信息,比如通讯录信息,短信信息等等。这种权限的开发性对于用户而言及其不友好,因此,在android 6.0的时候,新增了运行时权限。


什么是运行时权限:

        顾名思义就是在运行的时候赋予权限,即用户可直接在运行时管理应用权限。这种模式给了用户极大的可控性,很好的维护了用户的隐私。用户可以为安装的应用手动分别授予或撤销权限。


运行时权限的使用:运行时权限使用起来非常简单,首先app的API级别必须达到23及其以上,否则就不存在运行时权限一说。当APP的API级别在23及其以上的时候,务必在运行时检查和请求权限。具体步骤如下:

(1) 检查要使用到的权限是否已经被授予。------调用新增的checkSelfPermission()方法。

(2)请求权限。-------调用新增的requestPermissions()方法

(3)再次请求权限。-------弹出Dialog对话框。

(4)通过请求码来检查权限是否授予成功。


可能有的童靴就要问了,既然android 6.0加入的运行时权限,那么是不是所有的权限都需要进行检查一遍呢?那样的话会不会很麻烦,比如像一些很基本的权限完全没有必要进行检查的呀!哈哈哈,童靴的担心并不是没有道理,因为在实际的开发过程中,确实很多权限是必须的而且不会涉及到用户的隐私问题,如果连这一类权限都要去检查的话,会显得很不友好。所以针对这个问题,google开发团队将一些常见的权限分为两种为Normal Permission和Dangerous Permission.。


权限之一:Normal Permission

          Normal Permission即普通权限,使用这类权限非常简单,只需要在android的androidMainfest.xml文件里面直接注册就行。那么有哪些权限是属于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_INSTALL_PACKAGES
            SET_ALARM
            SET_TIME_ZONE
            SET_WALLPAPER
            SET_WALLPAPER_HINTS
            TRANSMIT_IR
            UNINSTALL_SHORTCUT
            USE_FINGERPRINT
            VIBRATE
            WAKE_LOCK
            WRITE_SYNC_SETTINGS


权限之二:Dangerous Permission

          Dangerous Permission即危险权限,注意这里所指的危险是指在没有用户允许的情况下被授予而导致的用户隐私不安全的情况。简而言之,在使用这类权限的时候我们必须对这些权限做一个授予的过程,由用户手动去设置。那么这类权限都有哪些呢?

           group:android.permission-group.CONTACTS
               permission:android.permission.WRITE_CONTACTS
               permission:android.permission.GET_ACCOUNTS
               permission:android.permission.READ_CONTACTS

           group:android.permission-group.PHONE
               permission:android.permission.READ_CALL_LOG
               permission:android.permission.READ_PHONE_STATE
               permission:android.permission.CALL_PHONE
               permission:android.permission.WRITE_CALL_LOG
               permission:android.permission.USE_SIP
               permission:android.permission.PROCESS_OUTGOING_CALLS
               permission:com.android.voicemail.permission.ADD_VOICEMAIL

           group:android.permission-group.CALENDAR
               permission:android.permission.READ_CALENDAR
               permission:android.permission.WRITE_CALENDAR

           group:android.permission-group.CAMERA
               permission:android.permission.CAMERA

           group:android.permission-group.SENSORS
               permission:android.permission.BODY_SENSORS

           group:android.permission-group.LOCATION
               permission:android.permission.ACCESS_FINE_LOCATION
               permission:android.permission.ACCESS_COARSE_LOCATION

           group:android.permission-group.STORAGE
               permission:android.permission.READ_EXTERNAL_STORAGE
               permission:android.permission.WRITE_EXTERNAL_STORAGE

           group:android.permission-group.MICROPHONE
               permission:android.permission.RECORD_AUDIO

           group:android.permission-group.SMS
               permission:android.permission.READ_SMS
               permission:android.permission.RECEIVE_WAP_PUSH
               permission:android.permission.RECEIVE_MMS
               permission:android.permission.RECEIVE_SMS
               permission:android.permission.SEND_SMS
               permission:android.permission.READ_CELL_BROADCASTS


细心的朋友已经发现了,这类权限是以group形式出现的。对的,这类权限就是以group形式出现的,在以后的开发过程中大家就会有体会了。好了,本篇博客到这里就要结束了,下篇我会教大家如何使用,欢迎大家在下面留言讨论。


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值