Android 6.0以上动态获取权限问题,百度语音识别

因为机器人的板子升级到了android 7.0系统,因而出现了语音唤醒不了,识别不了的问题,立刻意识到应该是android 6.0以上须要动态获取权限致使的缘由,因而乎写了动态申请权限,调用了动态权限回调。果真好了。接下来贴代码,但愿对你们有帮助。android

/** * android 6.0 以上须要动态申请权限 */private void initPermission() {    String permissions[] = {            Manifest.permission.RECORD_AUDIO,            Manifest.permission.READ_PHONE_STATE,            Manifest.permission.ACCESS_NETWORK_STATE,            Manifest.permission.READ_EXTERNAL_STORAGE,            Manifest.permission.WRITE_EXTERNAL_STORAGE,            Manifest.permission.MODIFY_AUDIO_SETTINGS,            Manifest.permission.ACCESS_WIFI_STATE,            Manifest.permission.WAKE_LOCK,            Manifest.permission.RECEIVE_BOOT_COMPLETED    };    ArrayList<String> toApplyList = new ArrayList<String>();    for (String perm : permissions) {        if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(this, perm)) {            toApplyList.add(perm);            //进入到这里表明没有权限.            Log.e("--------->", "没有权限");        } else {            Log.e("--------->", "已经被受权");        }    }    String tmpList[] = new String[toApplyList.size()];    if (!toApplyList.isEmpty()) {        ActivityCompat.requestPermissions(this, toApplyList.toArray(tmpList), 123);    }}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {    //  super.onRequestPermissionsResult(requestCode, permissions, grantResults);    switch (requestCode) {        case 1: {            // 受权被容许            if (grantResults.length > 0                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                Log.e("-------->", "受权请求被容许");                // permission was granted, yay! Do the                // contacts-related task you need to do.            } else {                Log.e("-------->", "受权请求被拒绝");            }            return;        }    }}而后在oncreate方法里调用initpermission方法,完成。
相关文章
相关标签/搜索