2012-03-04 7 views
5

मैं वर्तमान में एक कॉल को रोक रहा हूं और इसे अपनी अनुकूलित "ऑनकॉलस्क्रीन" गतिविधि में अग्रेषित कर रहा हूं। हालांकि, मेरी स्क्रीन पर जाने से पहले यह डिफ़ॉल्ट "ऑनकॉलस्क्रीन" पर फ्लैश होगा। मैं इस स्क्रीन को कैसे छुपा/रद्द कर सकता हूं ताकि कॉल प्राप्त करते समय मुझे केवल मेरी अनुकूलित स्क्रीन मिलती है।मैं डिफ़ॉल्ट आने वाली स्क्रीन को छिपाने/रद्द कैसे कर सकता हूं

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     String state = extras.getString(TelephonyManager.EXTRA_STATE); 
     Log.w("DEBUG", state); 
     if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
      String phoneNumber = extras 
        .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 

उत्तर

1

आप प्रसारण उच्चतम संभव प्राथमिकता के साथ android.intent.action.PHONE_STATE अवरोधन करने की जरूरत है, तो अगर में अपने BroadcastReceiver.onReceive() आप BroadcastReceiver.abortBroadcast() के माध्यम से प्रसारण को रद्द कर देगा आप डिफ़ॉल्ट आने वाली कॉल स्क्रीन को रोकने के लिए सक्षम हो जाएगा दिखाया जा सकता है, के बाद से डिफ़ॉल्ट अनुप्रयोग प्राप्त नहीं होगी आने वाली कॉल प्रसारण। उसके बाद आप अपनी गतिविधि दिखाने के लिए स्वतंत्र हैं।

+1

यह सुनिश्चित नहीं है कि यह काम करता है, लेकिन यह एंड्रॉइड 4.1.2 में काम नहीं करता है - PHONE_STATE प्रसारण गैर-आदेश दिया गया है, इसलिए प्रसारण को रद्द करने का प्रयास करते समय आपको एक त्रुटि मिलती है क्योंकि आप गैर-ऑर्डर किए गए प्रसारण को रोक नहीं सकते । –

+0

इनकमिंग कॉल प्रसारण प्राप्त करने के लिए सर्वोच्च प्राथमिकता क्या है। – VickyS

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