Android 6.0以上動態擷取許可權問題,百度語音辨識

來源:互聯網
上載者:User

標籤:申請   state   gem   context   storage   read   on()   override   work   

由於機器人的板子升級到了android 7.0系統,於是出現了語音喚醒不了,識別不了的問題,馬上意識到應該是android 6.0以上需要動態擷取許可權導致的原因,於是乎寫了動態申請許可權,調用了動態許可權回調。果然好了。接下來貼代碼,希望對大家有協助。

/**
* 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);
}

}

@Override
public 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方法,完成。

Android 6.0以上動態擷取許可權問題,百度語音辨識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.