由於呼入呼叫,可以將呼叫振鈴器切換爲靜音嗎?以編程方式關閉無聲
我可以將手機更改爲正常模式並設置鈴聲的音量,但由於手機之前處於靜音狀態,因此在更改設置後它不會剛剛響起。
我正在做的是,當手機處於靜音狀態,並且我收到一個未接來電時,基於某些條件,我希望手機實際上響鈴。
如上所述,我改變了設置好,所以如果我收到後續的電話振鈴的作品,但初始的呼叫(這觸發了設置的變化)仍然繼續在無聲模式下響鈴...有沒有方式(在我設置振鈴模式後)強制手機再次用新設置「響鈴」?
更新:
我已經設置的鈴聲關閉靜音,並設置使用下面的最大volumne響:
AudioManager mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
int origionalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mAudioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
我可以在振鈴實際播放時的日誌中看到,它註銷:
06-13 19:22:33.984: DEBUG/CallNotifier(126): RINGING... (new)
06-13 19:22:33.984: DEBUG/CallNotifier(126): onNewRingingConnection(): incoming: true state: INCOMING post dial state: NOT_STARTED
06-13 19:22:34.094: INFO/ActivityManager(59): Start proc android.process.acore for content provider com.android.providers.contacts/.ContactsProvider2: pid=294 uid=10000 gids={3003, 1015}
06-13 19:22:34.444: INFO/ActivityThread(294): Publishing provider com.android.social: com.android.providers.contacts.SocialProvider
06-13 19:22:34.494: INFO/ActivityThread(294): Publishing provider applications: com.android.providers.applications.ApplicationsProvider
06-13 19:22:34.594: WARN/CallNotifier(126): CallerInfo query took too long; manually starting ringer
06-13 19:22:34.594: WARN/CallNotifier(126): CallerInfo query took too long; falling back to default ringtone
06-13 19:22:34.594: DEBUG/Ringer(126): ring()...
06-13 19:22:34.664: INFO/ActivityManager(59): Start proc com.android.settings for broadcast com.android.settings/.widget.SettingsAppWidgetProvider: pid=301 uid=1000 gids={3002, 3001, 3003}
06-13 19:22:34.684: DEBUG/Ringer(126): mRingHandler: PLAY_RING_ONCE...
06-13 19:22:34.684: DEBUG/Ringer(126): creating ringtone: content://settings/system/ringtone
06-13 19:22:34.734: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN flg=0x10840000 cmp=com.android.phone/.InCallScreen }
06-13 19:22:35.374: DEBUG/InCallScreen(126): onCreate()... this = [email protected]
06-13 19:22:35.504: INFO/ActivityThread(294): Publishing provider contacts;com.android.contacts: com.android.providers.contacts.ContactsProvider2
06-13 19:22:36.184: DEBUG/AudioHardwareInterface(34): setMode(RINGTONE)
是否有辦法根本手動調用這些函數?
這是一種可能性,但正如你所說的那樣,我不想那麼做,除非它是最後的手段。如果我這樣做,我可能不得不跟蹤呼叫狀態,並在電話接聽等時停止播放聲音,謝謝你的建議。 – FireEnigmaX 2011-06-11 16:42:10
然而,只是合乎邏輯,我認爲這是唯一的選擇。當系統收到呼叫並將事件交給應用時,我認爲已經設置了通知的方式,因此此呼叫將保持沉默。應用程序正在踢這一切發生。 – yoshi 2012-04-09 20:07:16