在Android程序中,在执行形如访问网络、读取联系人时都要声明权限,在 Android 系统版本小于6.0时,所有的权限只需要在AndroidManifest文件中声明就可以使用对应的功能了。 但是在Android6.0版本以上,Android将权限分为了普通权限和危险权限,其中普通权限的使用和以前的Android版本一样,直接在AndroidManifest文件中声明就行了,系统会自动帮我们授权,但是危险权限不仅要在AndroidManifest文件中声明,还需要在使用权限的时候通过代码来判断用户授权并且对用户授权的结果进行对应的处理。那么哪些权限是危险权限呢,下面给出了Android所有的危险权限,那么除了下表中的危险权限,其它的权限就都是Android普通权限了:
我们可以通过权限组的方式大致记一下危险权限:
1、读写日历:android.permission.READ_CALENDAR
android.permission.WRITE_CALENDAR
2、使用相机: android.permission.CAMERA
3、读写联系人:android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
android.permission.GET_ACCOUNTS
4、位置服务:android.permission.ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
5、电话:android.permission.READ_PHONE_STATE
android.permission.CALL_PHONE
android.permission.READ_CALL_LOG
android.permission.WRITE_CALL_LOG
android.permission.ADD_VOICEMAIL
android.permission.USE_SIP
android.permission.PROGRESS_OUTGOING_CALLS
6、使用传感器:android.permission.BODY_SENSORS
7、短信:android.permission.SEND_SMS
android.permission.RECEIVE_SMS
android.permission.READ_SMS
android.permission.RECEIVE_WAP_PUSH
RECEIVE_MMS
8、读写手机储存:android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
好了,以上就是Android的所有危险权限,我们在使用这些权限的时候不仅要在AndroidManifest文件中声明,还需要在代码中对用户的授权情况进行处理,下面以一个简单的例子来看一下如何在代码中处理危险权限:
新建一个Android工程:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"<