2011-08-26 115 views
6

हैलो मैं सोच रहा था? यदि ऐसा है तो आप या तो मुझे सही दिशा में इंगित कर सकते हैं या कुछ नमूना कोड प्रदान कर सकते हैं?इनकमिंग कॉल स्क्रीन ओवरराइड करें? अगर वहाँ यह करने के लिए और अधिक कार्यक्षमता जोड़ने के लिए आने वाली कॉल स्क्रीन ओवरराइड करने के लिए एक रास्ता है

---------------------------------------------- ---- संपादित करें: --------------------------

मैं रिसीवर अच्छी तरह से काम कर रहा है जब कॉल में आता है, लेकिन कैसे होगा मुझे कॉल स्क्रीन ओवरराइड करने के लिए वर्तमान विंडो मिलती है? यह मैं अब तक क्या मिला है ... लेकिन मैं प्राप्त एक classCastException संदर्भ से गतिविधि के लिए कास्ट करने के लिए कोशिश कर रहा है, मैं किसी अन्य तरीके से खिड़की तक पहुंच हासिल करने की नहीं कर सकते लगता है।

@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); 
      Log.w("DEBUG", "-------------------------------------------------- Broadcast Received"); 
      if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
       String phoneNumber = extras 
         .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
       Log.w("DEBUG", phoneNumber); 
       Activity activity = (Activity)context.getApplicationContext(); 
       Window window = activity.getParent().getWindow(); 
       window.addContentView(window.findViewById(R.layout.textalertbuttonview),null); 
       Log.w("DEBUG", "------------------------Button Added"); 

      } 
     } 
     else { 
      Log.w("DEBUG", "---------------------------------------------------no Extras"); 
     } 
    } 

------------------------------------------- ------- संपादित करें 2: --------------------------

यह कुछ शोध के बाद नहीं लगता है कि मैं वास्तव में वास्तविक आने वाली कॉल स्क्रीन में तत्व जोड़ सकते हैं। इसलिए मुझे अपना खुद का विचार करना होगा और आने वाली कॉल स्क्रीन को ओवरराइड करना होगा। लेकिन मैं अभी भी विचारों के लिए खुला रहा हूँ ... मैं आने वाली कॉल को देखा प्लस लेकिन यह है कि इस परियोजना के लिए स्रोत कोड नहीं मिल रहा।

+0

अगर आपको बेहतर समाधान मिल गया तो कृपया साझा करें। मैं भी ऐसा करने की कोशिश कर रहा हूं। आपकी मदद के लिए बहुत बहुत धन्यवाद – png

उत्तर

2

सामान्यतया: आप एक BroadcastReceiver PHONE_STATE को सुनने के लिए सेट कर सकते हैं:

<receiver android:name=".CallsBroadcastReceiver" android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.PHONE_STATE" /> 
    </intent-filter> 
</receiver> 
फिर इस रिसीवर के अंदर

(फोन आप (बज हैंडल करना चाहते हैं की स्थिति की जाँच के बाद, कॉल में, ऊपर फांसी पर लटका दिया, आदि ।) आपको वर्तमान विंडो (जो कॉल स्क्रीन होना चाहिए) प्राप्त करना चाहिए और इसमें एक दृश्य जोड़ें। और निश्चित रूप से दृश्य को हटा दें जब राज्य वह नहीं है जिसे आप संभालना चाहते हैं।

बहुत सामान्य, लेकिन यह विचार है।

+0

धन्यवाद लेकिन मैं वर्तमान विंडो को ऑनसीसीव विधि के भीतर से कैसे प्राप्त करूं? मैंने कुछ कोड पोस्ट किया है जो मैंने उपयोग किया लेकिन क्लासकास्टेसेप्शन मिला। – Pengume

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