Как идентифицировать входящий вызов и исходящий вызов в Android

Как получить события входящего вызова и исходящего вызова в Android отдельно. На самом деле я пытался разработать приложение, которое открывается на входящем вызове, если число существует в базе данных, и он работает нормально. Но если я позвоню с устройства (исходящий вызов), и если номер существует в базе данных, все еще открыть мое приложение. Я хочу ограничить открытие моего приложения на исходящий звонок.

Мой манифест содержит, я получаю входящий звонок, как это:

<receiver android:name=".IncomingCallReceiver" >
    <intent-filter >             
        <action android:name="android.intent.action.PHONE_STATE" />             
    </intent-filter>
</receiver>

IncomingCallreceiver:

MyPhoneStateListener phoneListener=new MyPhoneStateListener(context);
TelephonyManager telephony = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);

MyPhonestateListener:

public void onCallStateChanged(int state,String incomingNumber){
      switch(state) {
          case TelephonyManager.CALL_STATE_IDLE:
              Log.d("DEBUG", "IDLE");
          break;
          case TelephonyManager.CALL_STATE_OFFHOOK:
              Log.d("DEBUG", "OFFHOOK");                        
              Intent i = new Intent(context, MyMainActivity.class);
              i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              context.startActivity(i);
          break;
          case TelephonyManager.CALL_STATE_RINGING:
              Log.d("DEBUG", "RINGING");
          break;
    }
}

Может кто-нибудь помочь мне дифференцировать исходящий вызов от входящего вызова, поэтому я справится с этим событиями.

заранее спасибо.

12
задан lopez.mikhael 13 May 2015 в 15:20
поделиться