2012-02-23 31 views
5

statrtActivity(callIntent) के साथ, कॉल जाता है और फिर मुझे कुछ सेकंड इंतजार करना पड़ता है और स्वचालित रूप से समाप्त होता है। मेरे कॉल को समाप्त करने के लिए मैंने माइक्रेल को ब्रॉडकास्ट्रेसीवर को उस onreceive() में विस्तारित किया है, मैंने कार्यान्वित किया है कि विधि केवल मुझे पुरानी संख्या और न्यूनंबर और टोस्ट प्रिंट करने के लिए मिला है। जो मैं चाहता हूं उसे कॉल करना है जो मुझे लिखने की ज़रूरत है। और मेरी कक्षा से अपरिवर्तनीय विधि कैसे कॉल करें? कृपया मेरी मदद करो। मुझे कहीं नहीं मिला।मेरे आउटगोइंग कॉल को कैसे समाप्त करें।

@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? 
       } 

उत्तर

3

आप इस कोशिश कर सकते हैं:

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

मैं अपने कोड की कोशिश की निम्नलिखित के माध्यम से आउटगोइंग कॉल गर्भपात लेकिन यह कॉल समाप्त करने के लिए प्रतीत नहीं होता। मैंने राज्य की जांच करने के लिए 'TelephonyManager.CALL_STATE_OFFHOOK' का उपयोग किया और फिर इसे समाप्त करने के लिए उपयोग किया। कोई उपाय? –

0

आप बस कोड

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' शून्य है ... –

+0

यदि आपने इसे नहीं जोड़ा है तो यह" PROCESS_OUTGOING_CALLS "अनुमति जोड़ें? –

+0

हाँ मैं समझता हूं .. मैंने आउटगोइंग के बजाय फोन स्टेटस चेंज प्रसारण का उपयोग किया .. धन्यवाद बीटीडब्ल्यू .. –

संबंधित मुद्दे