当来电来自特定号码时,振铃模式从振动变为振铃

时间:2012-06-20 10:47:40

标签: android android-vibration

我想创建一个Android应用程序,当来自特定号码

的来电时,该应用程序将模式更改为振动振铃

1 个答案:

答案 0 :(得分:0)

要更改来电振动振铃,请使用TelephonyManager,AudioManager and PhoneStateListener

 TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
 mTelephonyMgr.listen(new TeleListener(), PhoneStateListener.LISTEN_CALL_STATE);
class TeleListener extends PhoneStateListener 
{
    public void onCallStateChanged(int state, String incomingNumber) 
    {   
        super.onCallStateChanged(state, incomingNumber);
        switch (state) 
        {
            case TelephonyManager.CALL_STATE_IDLE: 
                //CALL_STATE_IDLE;
               break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
               //CALL_STATE_OFFHOOK;
               break;
            case TelephonyManager.CALL_STATE_RINGING: 
               //CALL_STATE_RINGING
               //CHECK YOUR PARTICULAR NUMBER HERE
               if(incomingNumber=="1234567890")
                 {
                    // USE AudioManager  for Settingringing from vibration
                    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);   

                    switch (am.getRingerMode()) {   
                        case AudioManager.RINGER_MODE_NORMAL:   
                            Log.i("MyApp","NORMAL mode");
                            am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
                            break;   
                    }  

                 }
                 else
                 {
                       //DO SOMETHING HERE
                 }
               break;
            default:
               break;
         }
      }

    }

在manifest.xml中添加<uses-permission android:name="android.permission.READ_PHONE_STATE">权限

或我们如何使用BroadcastReceiver获取电话状态请参阅本教程:

Get Phone State When Someone is calling using BroadcastReceiver Example