Java Android studio中的Webview应用程序麦克风访问问题

Java Android studio中的Webview应用程序麦克风访问问题,java,Java,我构建了一个web视图应用程序。它是一款在线学费应用程序。所以,每天都有一个视频直播课。因此,需要获得访问其麦克风的权限。请使用Plz帮助解决此问题。Android 6.0及以上版本在安装时将没有任何权限。因此,您需要在运行时请求许可。您可能尚未授予该应用程序的音频录制权限。 要解决此问题,请转到位于/app/src/main/AndroidManifest.xml的AndroidManifest.xml文件,并添加以下权限 您需要在应用程序块之外添加此权限 . . . </ap

我构建了一个web视图应用程序。它是一款在线学费应用程序。所以,每天都有一个视频直播课。因此,需要获得访问其麦克风的权限。请使用Plz帮助解决此问题。

Android 6.0及以上版本在安装时将没有任何权限。因此,您需要在运行时请求许可。您可能尚未授予该应用程序的音频录制权限。
要解决此问题,请转到位于/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;
    }