-1

我想创建一个 android 应用程序,当来自特定号码的来电时,将模式更改为振动振铃

4

1 回答 1

0

For Changing ringing from vibration on incoming call use Use TelephonyManager,AudioManager and PhoneStateListener as:

 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;
         }
      }

    }

add <uses-permission android:name="android.permission.READ_PHONE_STATE"> permission in manifest.xml

or How we Get Phone State using BroadcastReceiver see this tutorial:

Get Phone State When Someone is calling using BroadcastReceiver Example

于 2012-06-20T11:01:40.263 回答