2010-09-10 21 views
9

मैं किसी एंड्रॉइड डिवाइस पर पर आउटगोइंग कॉल को रीडायरेक्ट करने का प्रयास कर रहा हूं। इसलिए, मैं अपने ऑनसेसिव() विधि पर, NEW_OUTGOING_CALL इरादे के लिए ब्रॉडकास्ट रिसीवर "सुनना" का उपयोग करता हूं, मैं फोन नंबर बदलने के लिए setResultData() विधि का उपयोग करता हूं।एंड्रॉइड: रीडायरेक्ट आउटगोइंग कॉल

इस तरह

:

public void onReceive(Context arg0, Intent arg1) { 

    setResultData("351978923221"); 

} 

एमुलेटर सब कुछ ठीक है, लेकिन मेरा असली डिवाइस पर (एंड्रॉयड 2.1 के साथ एक भद्दा जेडटीई X850 मेरा मानना ​​है कि) यह बुला आशय एक गतिविधि है जो में निकलती है नहीं करता है तो एक ही आवेदन का हिस्सा है। डायलिंग स्क्रीन दिखाई देने के बाद, फोन कॉल को समाप्त कर देता है।

ऐसा क्यों होता है इस पर कोई विचार क्यों होता है?

नोट: मुझे पता है कि मेरा प्रश्न मूल रूप से this one जैसा ही है, लेकिन मैंने इसे फिर से पूछना चुना कि क्या गलत हो रहा है।


मैनिफ़ेस्ट फ़ाइल

एक अंश ...

<receiver android:name=".OutgoingCallDetection" android:exported="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" 
        android:priority="9999" /> 
     </intent-filter> 
    </receiver> 

</application> 

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

क्या आप अपना मैनिफेस्ट पोस्ट कर सकते हैं? इसके अलावा आप वहां कुछ त्रुटि जांच भी जोड़ सकते हैं और देख सकते हैं कि यह कुछ भी उठाता है (यानी वह नंबर जो डायल करने का प्रयास कर रहा था)। "Log.v ('onReiveive', 'फोन नंबर:' + intent.getStringExtra (Intent.EXTRA_PHONE_NUMBER));" - कुंजी यह देखने के लिए है कि यह शुरू करने के लिए भी हो रहा है। – xil3

+0

बस मैनिफेस्ट फ़ाइल के मामले को जोड़ दिया। मैं आज इस उत्तरार्ध पर वापस आऊंगा और नई जानकारी जोड़ूंगा। –

+0

मुझे कुछ स्थितियों में काम करने के लिए मिला, मुझे लगता है कि समस्या को फ़ोन नंबर से करना है जो ब्रॉडकास्ट रिसीवर को मिलता है या setResultData() के साथ सेट होता है। जैसे अगर फोन नंबर मैं कॉल करने का प्रयास करता हूं तो मेरे देश के उपसर्ग के साथ शुरू होता है, 351 में + के पास काम करने वाला पहला अक्षर होना चाहिए, अगर उसके पास केवल फोन नंबर है तो यह ठीक काम करता है। –

उत्तर

4

मैं डायल किए गए कॉल कट जाता है और नया कॉल रीडायल। यह डिवाइस पर पूरी तरह से काम किया।

setResultData(null); 
Uri uri = Uri.fromParts("tel", "!Number to be dialed!", null); 
Intent newIntent = new Intent(Intent.ACTION_CALL, uri); 
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(newIntent); 

आशा इस मदद करता है:

इस कोड हिस्सा है।

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