主要是在魅族和Vivo手机中
魅族(安卓4.4)有系统自带的权限控制
Vivo(安卓5.1)有i管家进行控制
所有不能只判断是不是有权限 还需要进行判断是否可以进行录制音视频
/**
* 判断是否录音可以使用
*
* @return 是否
*/
public static boolean isAudioCanUse() {
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int channelConfig = AudioFormat.CHANNEL_IN_STEREO;
int sampleRateInHz = 44100;
int bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz,
channelConfig, audioFormat);
int audioSource = MediaRecorder.AudioSource.MIC;
AudioRecord audioRecord = new AudioRecord(audioSource, sampleRateInHz,
channelConfig, audioFormat, bufferSizeInBytes);
//开始录制音频
try {
// 防止某些手机崩溃,例如联想
audioRecord.startRecording();
} catch (IllegalStateException e) {
e.printStackTrace();
return false;
}
/*
* 根据开始录音判断是否有录音权限
*/
if (audioRecord.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING) {
return false;
}
audioRecord.stop();
audioRecord.release();
audioRecord = null;
return true;
}
/**
* 判断是否摄像头可以使用
*
* @return 是否可以使用
*/
public static boolean isCameraCanUse() {
boolean canUse = true;
Camera mCamera = null;
try {
mCamera = Camera.open();
Camera.Parameters mParameters = mCamera.getParameters();
mCamera.setParameters(mParameters);
} catch (Exception e) {
canUse = false;
}
if (mCamera != null) {
mCamera.release();
}
return canUse;
}
网友评论