开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 650|回复: 0
收起左侧

[技术分享] Anroid 6.0 动态权限申请代码分享

[复制链接]
发表于 2021-10-20 15:43:22 | 显示全部楼层 |阅读模式   广东省揭阳市
[JavaScript] 纯文本查看 复制代码
/*  
    正常权限,无需动态申请:  
        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  

    2)危险权限,需要动态申请:  
    group:android.permission-group.STORAGE  
         READ_EXTERNAL_STORAGE   
         WRITE_EXTERNAL_STORAGE  

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

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

    group:android.permission-group.CALENDAR  
         READ_CALENDAR   
         WRITE_CALENDAR  

    group:android.permission-group.CAMERA  
         CAMERA  

    group:android.permissiongroup.SENSORS  
         BODY_SENSORS  

    group:android.permission-group.LOCATION  
         ACCESS_FINE_LOCATION   
         ACCESS_COARSE_LOCATION  

    group:android.permission-group.MICROPHONE  
         RECORD_AUDIO  

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

/**  
 * Me:   
 *    cnscn <214363570@qq.com>  
 *  
 * 参考:  
 *    https://blog.csdn.net/lvyoujt/article/details/52826556  
 *    https://developer.android.com/reference/android/Manifest.permission  
 *    https://developer.android.com/reference/android/os/Build.VERSION  
 */  

function plusReady() {  
    var Build = plus.android.importClass("android.os.Build");  
    var Manifest = plus.android.importClass("android.Manifest");  
    var MainActivity = plus.android.runtimeMainActivity();  
    //var context=main.getApplicationContext(); //未用到,在此仅供参考  

    var ArrPermissions = [          
        Manifest.permission.READ_EXTERNAL_STORAGE,  
        Manifest.permission.WRITE_EXTERNAL_STORAGE,  
        Manifest.permission.CAMERA  
    ];  

    function PermissionCheck(permission) {  
        if (Build.VERSION.SDK_INT >= 23) {  
            if (MainActivity.checkSelfPermission(permission) == -1) {  
                return false;  
            }  
        }  
        return true;  
    }  

    function PermissionChecks(Arr) {  
        var HasPermission = true;  
        for (var index in Arr) {  
            var permission = Arr[index];  
            //如果此处没有权限,则是用户拒绝了  
            if (!PermissionCheck(permission)) {  
                HasPermission = false;  
                break;  
            }  
        }  
        return HasPermission;  
    }  

    function PermissionRequest(Arr) {  
        var REQUEST_CODE_CONTACT = 101;  
        if (Build.VERSION.SDK_INT >= 23) {  
            MainActivity.requestPermissions(Arr, REQUEST_CODE_CONTACT);  
        }  
    }  

    //如果没有权限,则申请  
    if (!PermissionChecks(ArrPermissions)) {  
            PermissionRequest(ArrPermissions);  
    } else { //如果拥有权限,那么干点啥吧^_^  
            //.......  
    }  
}  

if (window.plus) {  
        plusReady();  
} else {  
        document.addEventListener('plusready', plusReady, false);  
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表