Java Android studio中的Webview应用程序麦克风访问问题
我构建了一个web视图应用程序。它是一款在线学费应用程序。所以,每天都有一个视频直播课。因此,需要获得访问其麦克风的权限。请使用Plz帮助解决此问题。Android 6.0及以上版本在安装时将没有任何权限。因此,您需要在运行时请求许可。您可能尚未授予该应用程序的音频录制权限。Java Android studio中的Webview应用程序麦克风访问问题,java,Java,我构建了一个web视图应用程序。它是一款在线学费应用程序。所以,每天都有一个视频直播课。因此,需要获得访问其麦克风的权限。请使用Plz帮助解决此问题。Android 6.0及以上版本在安装时将没有任何权限。因此,您需要在运行时请求许可。您可能尚未授予该应用程序的音频录制权限。 要解决此问题,请转到位于/app/src/main/AndroidManifest.xml的AndroidManifest.xml文件,并添加以下权限 您需要在应用程序块之外添加此权限 . . . </ap
要解决此问题,请转到位于/app/src/main/AndroidManifest.xml的AndroidManifest.xml文件,并添加以下权限
您需要在应用程序块之外添加此权限
.
.
.
</application>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
</manifest>
。
.
.
Iam已经添加了这些权限。
在这里输入代码。
如果(检查并请求权限()){
//授予的所有许可
}否则{
//需要所有的许可。
}
}
私有布尔校验和请求权限(){
int camerapermission=ContextCompat.checkSelfPermission(这是Manifest.permission.CAMERA);
int phonestate=ContextCompat.checkSelfPermission(这是Manifest.permission.READ\u PHONE\u STATE);
int location=ContextCompat.checkSelfPermission(这是Manifest.permission.ACCESS\u FINE\u位置);
int recordaudio=ContextCompat.checkSelfPermission(这是Manifest.permission.RECORD\u AUDIO);
int modifyAudio=ContextCompat.checkSelfPermission(这是Manifest.permission.MODIFY_AUDIO_设置);
int caputureaudio=ContextCompat.checkSelfPermission(这是Manifest.permission.CAPTURE\u AUDIO\u输出);
int permissionLocation=ContextCompat.checkSelfPermission(这是Manifest.permission.WRITE\u外部存储);
List ListPermissionsNeed=new ArrayList();
if(camerapermission!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.CAMERA);
}
if(phonestate!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.READ\u PHONE\u STATE);
}
if(位置!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.ACCESS\u FINE\u位置);
}
if(recordaudio!=已授予PackageManager.权限){
ListPermissionsNeed.add(Manifest.permission.RECORD_AUDIO);
}
if(modifyAudio!=已授予PackageManager.PERMISSION){
ListPermissionsNeed.add(Manifest.permission.MODIFY\u AUDIO\u设置);
}
if(caputureaudio!=已授予PackageManager.权限){
添加(Manifest.permission.CAPTURE\u AUDIO\u OUTPUT);
}
if(permissionLocation!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.WRITE\u外部存储);
}
如果(!ListPermissionsNeed.isEmpty()){
ActivityCompat.requestPermissions(此,ListPermissionsNeed.toArray(新字符串[ListPermissionsNeed.size()),请求\u ID\u多个\u权限);
返回false;
}
返回true;
}
您应该在最初发布时在问题中包含这一点,以便我们知道我们在做什么
Iam already added those permission.
<uses-permission android:name="android.permission.MICROPHONE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.audio.low_latency" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-feature android:name="android.hardware.audio.pro" />
<uses-feature android:name="android.hardware.microphone"/>
and code here.
if(checkAndRequestPermissions()){
//all permission granted
}else{
//require all permission.
}
}
private boolean checkAndRequestPermissions() {
int camerapermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
int phonestate = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);
int location = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
int recordaudio = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO);
int modifyAudio = ContextCompat.checkSelfPermission(this, Manifest.permission.MODIFY_AUDIO_SETTINGS);
int caputureaudio = ContextCompat.checkSelfPermission(this, Manifest.permission.CAPTURE_AUDIO_OUTPUT);
int permissionLocation = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
List<String> listPermissionsNeeded = new ArrayList<>();
if (camerapermission != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.CAMERA);
}
if (phonestate != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE);
}
if (location != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (recordaudio != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.RECORD_AUDIO);
}
if (modifyAudio != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.MODIFY_AUDIO_SETTINGS);
}
if (caputureaudio != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.CAPTURE_AUDIO_OUTPUT);
}
if (permissionLocation != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), REQUEST_ID_MULTIPLE_PERMISSIONS);
return false;
}
return true;
}