安卓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,不知道什么原理

  據說是判定有沒有被占用,表示疑問


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM