問題場景:app內(nèi)嵌套一個H5做的聊天頁面,發(fā)送語音消息需要申請麥克風權限;
清單文件權限是:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
問題一:頁面彈框提示

image.png
大寫的what???我明明動態(tài)申請錄音權限了啊
最后查到解決方法;原因是webview需要在WebChromeClient中重寫onPermissionRequest方法,代碼如下:
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
@Override
public void onPermissionRequest(PermissionRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//直接同意即可 deny是拒絕
request.grant(request.getResources());
}
}
});
myWebView.loadUrl(webUrl);
原以為就這么解決了,事與愿違第二個問題來了,彈框提示這個

image.png
最終看到這篇文章,傳送門:http://www.voidcn.com/article/p-bshmzkhc-bub.html
解決方法很簡單,就是在清單文件加入這個權限就好了 ????
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
至此,沒有問題了,可以正常使用了!給自己點贊??
給自己做個筆記的同時也希望能幫助到別人,喜歡的可以點個關注,隨時溝通探討技術。