我有一个应用程序,在某个时间开始通知,用户可以选择通知的铃声,当我将手机置于静音模式并且屏幕关闭时通知没有振动但是当屏幕是即使我打了电话,当我将电话模式改为声音并打电话时,通知也没有发出声音但振动,虽然我正在打电话如何解决这个问题? 我的意思是:这是正常的事情,因为这是正常的我认为我必须检查电话状态,如果它响了,我必须将通知的振动更改为关闭...因为这是我的第一个应用程序,需要知道我应该做些什么来通知不会引起任何麻烦...... 感谢。
答案 0 :(得分:0)
我做了什么:
listener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
stateString = "Idle";
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
stateString = "Off Hook";
break;
case TelephonyManager.CALL_STATE_RINGING:
stateString = "Ringing";
break;
}
create_notification(notif_title,notif_body);
}
};
telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
switch( audio.getRingerMode() ){
case AudioManager.RINGER_MODE_NORMAL:
modeString="normal";
break;
case AudioManager.RINGER_MODE_SILENT:
modeString="silent";
break;
case AudioManager.RINGER_MODE_VIBRATE:
modeString="vibrate";
break;
}
if(bool_activate_vibrate==true && stateString=="Idle" && modeString!="silent"){
Vibrator v = (Vibrator) c.getSystemService (Context.VIBRATOR_SERVICE);
v.vibrate(2000);
}