关于安卓6.0的权限笔记

来源:互联网 发布:人工智能为什么这么火 编辑:程序博客网 时间:2024/05/17 20:27

Android 6.0 中不仅要在 AndroidManifest.xml 中声明权限,还在运行的时候增加了权限动态判断涉及到的以下权限都会在运行时被判断,包括下面的权限


  • 权限
    • 传感器
    • 日历
    • 摄像头
    • 通讯录
    • 地理位置
    • 麦克风
    • 电话
    • 短信
    • 存储空间

在 Android 6.0 中默认对 targetSdkVersion 小于 23 的应用申请的权限进行允许,但是在 targetSdkVersion 大于等于 23 的应用中 ,就需要在代码上去进行动态的判断

在涉及到权限操作的地方,需要使用如下代码进行权限的判断和获取。

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){    //申请WRITE_EXTERNAL_STORAGE权限    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST_CODE);}

其中 这个方法用于判断是否有指定的权限

ContextCompat.checkSelfPermission()

这个方法用于申请指定的权限

ActivityCompat.requestPermissions()

此时会弹出一个权限申请的对话框,在用户点击了允许或者拒绝之后会调用一个回调方法

@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)  {  super.onRequestPermissionsResult(requestCode, permissions, grantResults);     }

其中的 requestCode 和 permissions 可以从中得到权限是否申请成功,然后根据结果进行下一步动作。


未影响的权限

剩下的一些权限不需要在运行时判断 , 在 AndroidManifest.xml 文件中添加即可。

android.permission.ACCESS_LOCATION_EXTRA_COMMANDSandroid.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_NOTIFICATION_POLICYandroid.permission.ACCESS_WIFI_STATEandroid.permission.ACCESS_WIMAX_STATEandroid.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMINandroid.permission.BROADCAST_STICKYandroid.permission.CHANGE_NETWORK_STATEandroid.permission.CHANGE_WIFI_MULTICAST_STATEandroid.permission.CHANGE_WIFI_STATEandroid.permission.CHANGE_WIMAX_STATEandroid.permission.DISABLE_KEYGUARDandroid.permission.EXPAND_STATUS_BARandroid.permission.FLASHLIGHTandroid.permission.GET_ACCOUNTSandroid.permission.GET_PACKAGE_SIZEandroid.permission.INTERNETandroid.permission.KILL_BACKGROUND_PROCESSESandroid.permission.MODIFY_AUDIO_SETTINGSandroid.permission.NFCandroid.permission.READ_SYNC_SETTINGSandroid.permission.READ_SYNC_STATSandroid.permission.RECEIVE_BOOT_COMPLETEDandroid.permission.REORDER_TASKSandroid.permission.REQUEST_INSTALL_PACKAGESandroid.permission.SET_TIME_ZONEandroid.permission.SET_WALLPAPERandroid.permission.SET_WALLPAPER_HINTSandroid.permission.SUBSCRIBED_FEEDS_READandroid.permission.TRANSMIT_IRandroid.permission.USE_FINGERPRINTandroid.permission.VIBRATEandroid.permission.WAKE_LOCK    android.permission.WRITE_SYNC_SETTINGScom.android.alarm.permission.SET_ALARMcom.android.launcher.permission.INSTALL_SHORTCUTcom.android.launcher.permission.UNINSTALL_SHORTCUT
0 0