2016-03-07 16 views
6

मैं किसी ऐसे एप्लिकेशन पर काम कर रहा हूं जिसके लिए व्हाट्सएप कॉल शुरू हो रहा है (कॉलर और रिसीवर एंड दोनों पर) समाप्त होने पर notification/Receiver कुछ प्रकार की आवश्यकता है। क्या मेरे आवेदन के भीतर आने वाली/आउटगोइंग व्हाट्सएप कॉल जानकारी प्राप्त करना संभव है?एंड्रॉइड व्हाट्सएप कॉल स्टार्ट ब्रॉडकास्ट रिसीवर

मैं Accessibility Service

उपयोग करने के लिए कोशिश की है "com.whatsapp" के रूप में पैकेज का नाम का उपयोग करना, मैं अपने आवश्यकता को पूरा करने में असमर्थ हूँ। क्या कोई मुझे सुझाव देगा कि मुझे क्या करना चाहिए? या यह वास्तव में किया जा सकता है? यदि हां, तो कृपया बताएं कि कैसे।

+0

तथाकथित व्यवहार में शामिल होने पर यूआई के व्यवहार के बारे में आपने क्या पुष्टि की है? – JoxTraex

+0

मैंने व्हाट्सएप से विशिष्ट टेक्स्ट को पकड़ने के लिए एक्सेसिबिलिटी सेवा का उपयोग करने का प्रयास किया है, लेकिन कॉल बटन एक ड्रायबल है, पाठ नहीं। यह भी एक समस्या है इसलिए मैं खोज रहा था कि व्हाट्सएप कॉल कब शुरू होता है और जब यह समाप्त होता है तो जानकारी प्राप्त करने का कोई अन्य तरीका है? –

+0

क्या आप जानना चाहते हैं कि उपयोगकर्ता व्हाट्सएप एक्शनबार में कॉल आइकन पर कब क्लिक करता है? – Dinash

उत्तर

1

चलिए क्वेरी को हल करें .... अभिगम्यता सेवा आपको यह सूचित करने में मदद करेगी कि आपको अपने आवश्यक पैकेज नाम के विरुद्ध अधिसूचनाएं प्राप्त होंगी। उदाहरण के लिए "com.whatsapp"।

अब अच्छी बात यह है कि आप एंड्रॉइड 4.2 के भीतर एंड्रॉइड 4.2 के भीतर अधिसूचना सेवा के भीतर थोड़ा सा प्रयास करके अधिसूचना संदेश पार्स कर सकते हैं। आपके लिए अनजाने में, github project था जो वास्तव में आपकी वांछित चीज कर रहा था लेकिन यह वर्तमान में अनुपलब्ध है।

+0

टूटा हुआ आपका उल्लिखित लिंक। इसके अलावा मैंने एक्सेसिबिलिटी सर्विस के साथ गड़बड़ी की है जैसा कि मैंने अपने प्रश्न में उल्लेख किया है लेकिन दुर्भाग्य से मैं इसके साथ अपनी आवश्यकताओं को प्राप्त करने में असमर्थ हूं। जब मैं व्हाट्सएप कॉल शुरू करता हूं तो मैं अपने आवेदन में प्रसारण/इरादा/अधिसूचना या किसी भी प्रकार का ध्वज प्राप्त करना चाहता हूं। –

+1

एक्सेसबैलिटी सेवा का उपयोग करके, मैं व्हाट्सएप कॉल बटन को ट्रैक करने में असमर्थ हूं क्योंकि इसमें कोई टेक्स्ट नहीं है, इसकी खींच योग्य है। यह शायद ही पकड़ने के लिए है और मैं कॉल अंत को ट्रैक कैसे कर सकता हूं? –

3

मैंने कोशिश की और मैं व्हाट्सएप कॉल बटन पर कब्जा करने में सक्षम हूं और एंड बटन बटन पर क्लिक करें। नीचे सरल AccessibilityService है कि मैं का इस्तेमाल किया और यह कोई और अधिक अलग उदाहरण से Android Developers website

public class MyAccessibilityService extends AccessibilityService { 

@Override 
protected void onServiceConnected() { 
    AccessibilityServiceInfo info = new AccessibilityServiceInfo(); 
    // Set the type of events that this service wants to listen to. Others 
    // won't be passed to this service. 
    info.eventTypes = AccessibilityEvent.TYPE_VIEW_CLICKED | 
      AccessibilityEvent.TYPE_VIEW_FOCUSED; 

    // If you only want this service to work with specific applications, set their 
    // package names here. Otherwise, when the service is activated, it will listen 
    // to events from all applications. 
    info.packageNames = new String[] 
      {"com.whatsapp","com.android.calendar"}; 

    // Set the type of feedback your service will provide. 
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN; 

    // Default services are invoked only if no package-specific ones are present 
    // for the type of AccessibilityEvent generated. This service *is* 
    // application-specific, so the flag isn't necessary. If this was a 
    // general-purpose service, it would be worth considering setting the 
    // DEFAULT flag. 

    // info.flags = AccessibilityServiceInfo.DEFAULT; 

    info.notificationTimeout = 100; 

    this.setServiceInfo(info); 



} 

@Override 
public void onAccessibilityEvent(AccessibilityEvent event) { 
    final int eventType = event.getEventType(); 
    String eventText = null; 
    switch(eventType) { 
     case AccessibilityEvent.TYPE_VIEW_CLICKED: 
      eventText = "Focused: "; 
      break; 
     case AccessibilityEvent.TYPE_VIEW_FOCUSED: 
      eventText = "Focused: "; 
      break; 
    } 

    //eventText = eventText + event.getContentDescription(); 

    // Do something nifty with this text, like speak the composed string 
    // back to the user. 
    Toast.makeText(getApplicationContext(),""+eventText +" --- "+event.getContentDescription(),Toast.LENGTH_LONG).show(); 
} 

@Override 
public void onInterrupt() { 

} 

}

में उपलब्ध उपरोक्त कोड में मैं एक टोस्ट संदेश और drawable के लिए चाल हम हो जाएगा से पता चला है कंटेंट डिस्क्रिप्शन प्रदान करना जिसे सिस्टम द्वारा "टॉकबैक" एक्सेसिबिलिटी मोड में इस्तेमाल किया जा सकता है। उम्मीद है की यह मदद करेगा!!!

+0

हाय दिनश, क्या व्हाट्सएप कॉल प्राप्त/समाप्त होने पर टोस्ट संदेश भी दिखाता है? डिफ़ॉल्ट रूप से – iAmLearning

+0

@iAmLearning, आपको प्राप्त करने और अंत के लिए टोस्ट संदेश नहीं मिलेगा। लेकिन आप एंड बटन के क्लिक को ढूंढने और कॉल बटन में भाग लेने के लिए प्रबंधन कर सकते हैं। – Dinash

+0

ठीक है। धन्यवाद दीनाश। मैं कोशिश करूँगा – iAmLearning

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