2012-02-23 31 views
5

statrtActivity(callIntent) ile, çağrı gider ve sonra birkaç saniye beklemek ve otomatik olarak bitirmek zorunda. benim aramalarımı bitirmek için mycalss Broadcastreceiver genişletir o zaman bu onreceive() i uygulanan.Bu yöntemde sadece eski sayı ayarlamak için aldım ve newnumber ve tost yazdırıyor. Tam olarak ne istediğimi yazmak için yazmam gerekenleri sonlandırmak. ve benim sınıfımdan onurlu yöntem olarak nasıl çağrılır? Plase yardım et. hiçbir yere gitmedim.Giden çağrımın nasıl sonlandırılacağı.

@Override 
       public void onReceive(Context context, Intent intent) {         
        final String oldNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);   
        this.setResultData(newPhNnumber);             
        final String newNumber = this.getResultData(); 
        if((newNumber!=null)&&(newNumber!=oldNumber)) 
        { 
        String msg = "Intercepted outgoing call. Old number " + oldNumber + ", new number " + newNumber; 
        Toast.makeText(context, msg, Toast.LENGTH_LONG).show(); 
        this.abortBroadcast();----> what it does? 
       } 

cevap

3

Bunu denemek olabilir:

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
try { 
    Class c = Class.forName(tm.getClass().getName()); 
    Method m = c.getDeclaredMethod("getITelephony"); 
    m.setAccessible(true); 
    ITelephony telephonyService = (ITelephony) m.invoke(tm); 

    telephonyService.endCall(); 

} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

Ben kodunuzu çalıştı aşağıdaki yoluyla giden çağrıyı iptal ama bu aramayı sonlandırmak görünmüyor. Durumu kontrol etmek ve daha sonra bitirmek için 'TelephonyManager.CALL_STATE_OFFHOOK' kullandım. Herhangi bir fikir? –

0

sadece kod

public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 

    if (intent.getAction() 
      .equals("android.intent.action.NEW_OUTGOING_CALL")) { 

     phoneNo = intent 
       .getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

     if (phoneNo.isBlocked(blockNo)) { 
      setResultData(null); 

     } 
    } 
} 
+0

'phoneNo' null ... –

+0

Eklemediyseniz" PROCESS_OUTGOING_CALLS "iznini ekleyin. –

+0

Evet anladım .. Giden telefon yerine telefon durum değişikliği kullandım .. Teşekkürler btw .. –

İlgili konular