2012-05-18 21 views
9

मुझे नहीं लगता कि यह संभव है, क्योंकि मुझे एसडीके दस्तावेज (अभी तक) में कुछ भी नहीं मिला है।टोस्ट संदेशों का पता लगाना

लेकिन मैं यह जानने के साथ कर सकता हूं कि टोस्ट संदेशों को लॉग करने वाले एप्लिकेशन को लिखना संभव है या नहीं। लॉग इन करने से कौन सा एप्लिकेशन दिखाया गया और संदेश किस प्रकार प्रदर्शित हुआ।

यह एक ऐप बनाने का एक पूरी तरह से व्यक्तिगत प्रयास है जो टोस्ट संदेशों का पता लगा सकता है। क्योंकि मेरे फोन पर कुछ एक टोस्ट बना रहा है जो प्रतिदिन एक बार "भेज रहा है ..." और मेरे जीवन के लिए मैं अपमानजनक आवेदन (सेवा वर्ग) को ट्रैक नहीं कर सकता। मैंने सोचा कि यह जीमेल या ईरर्नोट हो सकता है, लेकिन भेजने के लिए टोस्ट संदेश थोड़ा अलग हैं। मैं एक ऐप बनाने के लिए जा रहा हूं क्योंकि 1) मुझे नहीं पता कि लॉगकैट कुछ भी दिखाएगा, और 2) मैं अपने व्यक्तिगत/देव फोन को हर समय पीसी में प्लग नहीं रखना चाहता (जैसा कि "भेज रहा है ... "संदेश इतनी बार होता है)।

+0

क्या आपने अपना ऐप पूरा कर लिया और इसे Google Play पर रखा? –

+0

@ divideandconquer.se मैंने इसे कभी भी Google play पर पोस्ट नहीं किया क्योंकि मैं केवल इस मुद्दे को ट्रैक कर रहा था। लेकिन यह काम किया। संदेश सिम टूल किट से आ रहा था जो पूर्व-स्थापित था। मैंने एंड्रॉइड 4.1 के बाद से Google play के साथ कभी भी परेशान नहीं किया अधिसूचनाएं आपको बताती हैं कि कौन सा ऐप उन्हें बनाया गया है। – JonWillis

+4

@ divideandconquer.se मैंने इस प्रश्न से एक ऐप बनाया है: https://play.google.com/store/apps/details?id=org.mars3142.android.toaster – mars3142

उत्तर

16

Accessibility Service के साथ संदेश/अधिसूचनाएं पकड़ना संभव है, उस पर एक नज़र डालें।

आप वर्ग AccessibilityService का विस्तार करने और कुछ इस तरह लागू करने के लिए विधि onAccessibilityEvent() ओवरराइड कर सकते हैं:

public void onAccessibilityEvent(AccessibilityEvent event) { 
    if (event.getEventType() != AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) 
     return; // event is not a notification 

    String sourcePackageName = (String) event.getPackageName(); 

    Parcelable parcelable = event.getParcelableData(); 
    if (parcelable instanceof Notification) { 
     // Statusbar Notification 
    } 
    else { 
     // something else, e.g. a Toast message 
     String log = "Message: " + event.getText().get(0) 
        + " [Source: " + sourcePackageName + "]"; 
     // write `log` to file... 
    } 
} 

नोट: यह एंड्रॉयड 2.2 पर मेरे लिए काम नहीं किया के रूप में यह Toasts को पकड़ने के लिए नहीं लगता है, लेकिन यह एंड्रॉइड 4.0+ पर काम किया।

+0

मैं इसे एक दूंगा, और आपको परिणाम बताएं – JonWillis

+0

सेवा काम करने के लिए थोड़ी देर लग गई। लेकिन यह काम किया। टोस्ट संदेश भेज रहा है ... com.android.stk – JonWillis

+0

से आ रहा है खूबसूरती से काम करता है। कुछ समय के लिए यह देख रहे थे। एक बार 4.0 टेबल पर हिट करते हैं, चीजें जब थोड़ा मजाकिया होती है, लेकिन यह इसे ठीक करती है :) –

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