-1

特定の番号からの着信時に振動から着信音にモードを切り替えるAndroidアプリを作りたい

4

1 に答える 1

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

    }

<uses-permission android:name="android.permission.READ_PHONE_STATE">manifest.xml に権限を追加する

または BroadcastReceiver を使用して電話の状態を取得する方法は、次のチュートリアルを参照してください。

BroadcastReceiver の例を使用して誰かが電話をかけているときに電話の状態を取得する

于 2012-06-20T11:01:40.263 に答える