【发布时间】:2011-06-11 15:31:56
【问题描述】:
是否可以在来电时将呼叫铃声关闭静音?
我可以将手机切换到普通模式并设置铃声的音量,但是因为之前手机处于静音状态,所以我更改设置后它不会开始响铃。
我正在做的是,当电话处于静音状态并且我接到来电时,根据某些条件我希望电话真正响铃。
如前所述,我已经更改了设置,所以如果我收到后续呼叫,振铃器会工作,但初始呼叫(触发设置更改)仍然继续以静音模式振铃...有没有办法(在我设置振铃模式后)强制手机再次使用新设置“振铃”?
更新:
我已将铃声设置为静音并使用以下设置以最大音量响铃:
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 = com.android.phone.InCallScreen@44f29ad0
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)
有没有办法手动调用这些函数?
【问题讨论】:
标签: android