2017-06-19 2 views
0

Bitte helfen Sie mir, meinen Code zu korrigieren, so dass, wenn ich die Anruftaste drücke, der Code die von mir angegebene Nummer anruft.Wenn ich die Anruftaste drücke, ruft mein Code nicht den Anruf an.

//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); 
      isPhoneCalling = true; 
     } 

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

     } 
    } 
} 

Antwort

0

Für den Code zu machen, sollten Sie den einfachen und kleinen Code statt schreiben, dass der genaue Code einen Aufruf der angegebenen Zahl für die Herstellung ist unten angegeben:

// 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:"+999999999));//change the number 
       startActivity(callIntent); 

      } 

     }); 
Verwandte Themen