安卓6.0之前的系统 判断app是否有录音权限

	public static synchronized boolean isVoicePermission() {
		AudioRecord record = null;
		try {
			record = new AudioRecord(MediaRecorder.AudioSource.MIC, 22050,
					AudioFormat.CHANNEL_CONFIGURATION_MONO,
					AudioFormat.ENCODING_PCM_16BIT,
					AudioRecord.getMinBufferSize(22050,
							AudioFormat.CHANNEL_CONFIGURATION_MONO,
							AudioFormat.ENCODING_PCM_16BIT));
			record.startRecording();
			int recordingState = record.getRecordingState();
			if (recordingState == AudioRecord.RECORDSTATE_STOPPED) {
				return false;
			}
			//第一次  为true时,先释放资源,在进行一次判定
			//************
			record.release();
			record = new AudioRecord(MediaRecorder.AudioSource.MIC, 22050,
					AudioFormat.CHANNEL_CONFIGURATION_MONO,
					AudioFormat.ENCODING_PCM_16BIT,
					AudioRecord.getMinBufferSize(22050,
							AudioFormat.CHANNEL_CONFIGURATION_MONO,
							AudioFormat.ENCODING_PCM_16BIT));
			record.startRecording();
			int recordingState1 = record.getRecordingState();
			if (recordingState1 == AudioRecord.RECORDSTATE_STOPPED) {
			}
			//**************
			//如果两次都是true, 就返回true  原因未知
			return true;
		} catch (Exception e) {
			return false;
		} finally {
			if (record != null) {
				record.release();
			}
		}

	}

  只判定一次的话 ,一般第一次拒绝 会得到true,表示有权限,但是再次获取 就会为false,不知道什么原理

  据说是判定有没有被占用,表示疑问

posted @ 2017-05-04 09:22  凤雏小呆  阅读(1901)  评论(0编辑  收藏  举报