因为机器人的板子升级到了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方法,完成。