资讯详情

Android 6.0 运行时权限问题 open failed: EACCES (Permission denied)

Android6.0 权限变化很大,将权限分为普通权限和危险权限

对于普通权限,直接在 Manifest 文件中的声明可以使用;对于危险权限,除了Manifest 除了文件中的声明外,还需要在使用权限的地方进行检查 APP 是否有权限,如果没有申请

以阅读手机上的照片为例

首先在Manifest 以下配置添加到文件中

其次,在需要的地方进行权限判断和申请

//CameraDemoActivity 是activity的名字

if (ContextCompat.checkSelfPermission(CameraDemoActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE ) == PackageManager.PERMISSION_GRANTED){

//有权限的情况

}else{

///无权申请权限

//REQ是本请求的识别号,即 requestCode

ActivityCompat.requestPermissions(CameraDemoActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQ);

}

注:在上述代码中CameraDemoActivity 是 Activity 的名字;REQ是本请求的识别号,即 requestCode。这两个要转化为自己的项目 Activity 和requestCode

申请权限后,将处理回调函数,即 Activity 中重写 onRequestPermissionsResult 方法

/***

* 申请权限后的回调函数

* @param requestCode

* @param permissions

* @param grantResults

*/

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if (requestCode == REQ){

if (grantResults[0] == PackageManager.PERMISSION_GRANTED){

//申请权限成功

}else{

///拒绝申请权限

}

}

}

操作效果如下

6fb2e51c6ab292c1d8d9a74303bb633c.png

普通权限列表

权限名称

权限作用

ACCESS_LOCATION_EXTRA_COMMANDS

允许应用程序访问额外位置提供命令

ACCESS_NETWORK_STATE

允许程序访问GSM网络信息

ACCESS_NOTIFICATION_POLICY

允许app状态栏显示通知

ACCESS_WIFI_STATE

允许程序访问Wi-Fi网络状态信息

BLUETOOTH

允许程序连接到匹配的蓝牙设备

BLUETOOTH_ADMIN

允许程序发现和匹配蓝牙设备

BROADCAST_STICKY

允许程序广播通常使用intents

CHANGE_NETWORK_STATE

允许程序改变网络连接状态

CHANGE_WIFI_MULTICAST_STATE

打开组播功能

CHANGE_WIFI_STATE

允许程序改变Wi-Fi连接状态

DISABLE_KEYGUARD

禁止键盘允许程序

EXPAND_STATUS_BAR

状态栏允许程序扩展和收缩

GET_PACKAGE_SIZE

允许获得任何程序package占用空间容量

INSTALL_SHORTCUT

允许在手机桌面上添加快捷方法

INTERNET

允许程序打开网络套接字

KILL_BACKGROUND_PROCESSES

允许杀死过程

MODIFY_AUDIO_SETTINGS

允许程序修改全局音频设置

NFC

允许使用NFC

READ_SYNC_SETTINGS

允许程序读取同步设置

READ_SYNC_STATS

允许程序读取同步状态

WRITE_SYNC_SETTINGS

允许程序写入同步设置

WAKE_LOCK

允许使用PowerManager的 WakeLocks保持过程从屏幕上消失

VIBRATE

振动设备允许访问

USE_FINGERPRINT

允许使用指纹识别

UNINSTALL_SHORTCUT

允许快速卸载

TRANSMIT_IR

红外发射器允许使用设备

SET_WALLPAPER_HINTS

允许程序设置壁纸hits

SET_WALLPAPER

允许程序设置壁纸

SET_TIME_ZONE

允许程序设置时间区域

SET_ALARM

允许程序设置闹钟提醒

REQUEST_INSTALL_PACKAGES

允许未知的应用安装权限允许允许未知的应用安装权限

REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

允许加入白名单(休眠和待机)

REORDER_TASKS

允许程序改变Z轴排列任务

RECEIVE_BOOT_COMPLETED

允许程序接收

危险权限清单

权限名称

分类

作用

RECORD_AUDIO

MICROPHONE

麦克风

BODY_SENSORS

SENSORS

传感器

ACCESS_COARSE_LOCATION

LOCATION

位置

ACCESS_FINE_LOCATION

CAMERA

CAMERA

相机

WRITE_CALENDAR

CALENDAR

日历

READ_CALENDAR

PROCESS_OUTGOING_CALLS

PHONE

手机

USE_SIP

ADD_VOICEMAIL

WRITE_CALL_LOG

READ_CALL_LOG

CALL_PHONE

READ_PHONE_STATE

GET_ACCOUNTS

CONTACTS

联系人

WRITE_CONTACTS

READ_CONTACTS

WRITE_EXTERNAL_STORAGE

STORAGE

存储卡

READ_EXTERNAL_STORAGE

RECEIVE_MMS

SMS

短信

RECEIVE_WAP_PUSH

READ_SMS

RECEIVE_SMS

SEND

参考文档:

https://www.jianshu.com/p/b4a8b3d4f587

https://www.cnblogs.com/guanmanman/p/6197148.html

https://www.jianshu.com/p/31cf0cd9cbd1

https://www.jianshu.com/p/8e37e9cf20a5

https://www.nblogs.com/kondoh/archive/2012/04/20/2459784.html

https://blog.csdn.net/xiaorenwu1206/article/details/49358433

https://blog.csdn.net/u014133119/article/details/80652188

标签: 振动传感器3030b4

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台