2013-03-29 4 views
0

Я пробую здесь сделать телефонный звонок, и это работает, но проблема в том, когда я заканчиваю вызов, я не получаю мой взгляд назад. Оставайся в списке вызовов. .И когда я нажимаю на кнопку возврата в моем телефоне он восходит к моей деятельности, я хочу показать ... Спасибо :)Автоматическое возобновление заявки по окончании телефонного разговора

@Override 
public void onClick(View arg0) { 

    if (arg0 == btn_ajout) { 
     Intent i=new Intent(Docteur_gestion.this, AjoutDocActivity.class); 
     startActivity(i); 
    } 

    if(arg0 == btn_appel) { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:"+global_txt_tel_doc)); 
     startActivity(callIntent);  
    } 
} 
+0

что вы хотите .. – Unknown

+0

форматирование довольно плохо. Убедитесь, что вы, по крайней мере, заглавные буквы, и что ваши образцы кода правильно отшлифованы. Вот почему есть динамический просмотр внизу. –

+0

@CobraAjgar, когда я свисаю после вызова (отцепляюсь), я хочу снова увидеть активность, а не вызов меню (журнал вызовов), извините за плохое форматирование ... –

ответ

2

Вы должны реализовать phoneStateListener следующим образом:

public class MainActivity extends Activity { 

    final Context context = this; 
    private Button button; 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     button = (Button) findViewById(R.id.buttonCall); 

     // add PhoneStateListener 
     PhoneCallListener phoneListener = new PhoneCallListener(); 
     TelephonyManager telephonyManager = (TelephonyManager) this 
      .getSystemService(Context.TELEPHONY_SERVICE); 
     telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE); 

     // add button listener 
     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

       Intent callIntent = new Intent(Intent.ACTION_CALL); 
       callIntent.setData(Uri.parse("tel:0377778888")); 
       startActivity(callIntent); 

      } 

     }); 

    } 

    //monitor phone call activities 
    private class PhoneCallListener extends PhoneStateListener { 

     private boolean isPhoneCalling = false; 

     String LOG_TAG = "LOGGING 123"; 

     @Override 
     public void onCallStateChanged(int state, String incomingNumber) { 

      if (TelephonyManager.CALL_STATE_RINGING == state) { 
       // phone ringing 
       Log.i(LOG_TAG, "RINGING, number: " + incomingNumber); 
      } 

      if (TelephonyManager.CALL_STATE_OFFHOOK == state) { 
       // active 
       Log.i(LOG_TAG, "OFFHOOK"); 

       isPhoneCalling = true; 
      } 

      if (TelephonyManager.CALL_STATE_IDLE == state) { 
       // run when class initial and phone call ended, 
       // need detect flag from CALL_STATE_OFFHOOK 
       Log.i(LOG_TAG, "IDLE"); 

       if (isPhoneCalling) { 

        Log.i(LOG_TAG, "restart app"); 

        // restart app 
        Intent i = getBaseContext().getPackageManager() 
         .getLaunchIntentForPackage(
          getBaseContext().getPackageName()); 
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(i); 

        isPhoneCalling = false; 
       } 

      } 
     } 
    } 

} 

Два разрешения, необходимые в манифесте

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

и

<uses-permission android:name="android.permission.CALL_PHONE" /> 

Я нашел это решение по этому link

Смежные вопросы