1

我有一个在特定时间启动通知的应用程序,用户可以选择通知的铃声,当我将手机置于静音模式并且屏幕关闭时,通知没有振动,但当屏幕打开时它振动即使我有电话,当我将电话模式更改为声音并有电话时,通知没有发出声音而是振动,虽然我正在打电话如何解决这个问题?我的意思是:这是正常的事情吗,因为这很正常我认为我必须检查手机状态,如果它正在响铃,我必须将通知的振动更改为关闭......因为这是我的第一个应用程序并且需要知道我应该怎么做才能通知不会造成任何麻烦...谢谢。

4

1 回答 1

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);
        }
于 2013-12-29T05:31:30.010 回答