Android M - MediaRecorder start failed

随声附和 提交于 2019-12-06 11:26:24

For android M You need to add Runtime Permission like Camera,Audio Try This it may be help to you

private static final int MY_PERMISSIONS_REQUEST = 11;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (mContext.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO},
            MY_PERMISSIONS_REQUEST);
} else {
    Log.d("TAG", "Already granted access");
    initializeView(v);
}
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
switch (requestCode) {
    case MY_PERMISSIONS_REQUEST: {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Log.d("TAG", "Permission Granted");
            initializeView(v);
        } else {
            Log.d("TAG", "Permission Failed");
            Toast.makeText(getActivity().getBaseContext(), "You must allow permission record audio to your mobile device.", Toast.LENGTH_SHORT).show();
            getActivity().finish();
        }
    }
    // Add additional cases for other permissions you may have asked for
}
  }
Jose

try this:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
    if (ContextCompat.checkSelfPermission(this,
            Manifest.permission.CAMERA)
    != PackageManager.PERMISSION_GRANTED || 
    ContextCompat.checkSelfPermission(this,
            Manifest.permission.RECORD_AUDIO)
    != PackageManager.PERMISSION_GRANTED ||
    ContextCompat.checkSelfPermission(this,
            Manifest.permission.READ_EXTERNAL_STORAGE)
    != PackageManager.PERMISSION_GRANTED ||
    ContextCompat.checkSelfPermission(this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE)
    != PackageManager.PERMISSION_GRANTED ||
    ContextCompat.checkSelfPermission(this,
            Manifest.permission.ACCESS_NETWORK_STATE)
    != PackageManager.PERMISSION_GRANTED ||
    ContextCompat.checkSelfPermission(this,
            Manifest.permission.INTERNET)
    != PackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(this,
               new String[]{Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO,Manifest.permission.INTERNET,Manifest.permission.ACCESS_NETWORK_STATE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    0);
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!