可以使用以下代码示例来实现:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { // Permission is not granted, request permission ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, MY_PERMISSIONS_REQUEST_RECORD_AUDIO); } else { // Permission is granted, start recording startRecording(); }
@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_RECORD_AUDIO: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, start recording startRecording(); } else { // permission denied, show alert dialog showAlertDialog(); } return; } } }
注意:当应用程序从后台转到前台时,还需要在Activity的onResume方法中检查音频录制权限是否已授予,如果未授予则需要重新请求权限。