2012-05-18 25 views
9

Bunun mümkün olmadığını düşünüyorum, çünkü SDK belgelerinde hiçbir şey bulamadım (henüz).Tost mesajlarını tespit etme

Ancak, Tost mesajlarını kaydeden bir uygulama yazmanın mümkün olup olmadığını bilmek ile yapabilirdim. Hangi uygulamanın gösterildiğini ve mesajın görüntülendiğini günlüğe kaydeder.

Bu, tost mesajlarını algılayabilen bir uygulama oluşturmak için tamamen kişisel bir çabadır. Telefonumdaki bir şey, günde bir kez "Gönderiliyor ..." diyen bir tost oluşturduğundan ve hayatım boyunca rahatsız edici uygulamayı (Hizmet sınıfı) takip edemediğimden. GMail veya Evernote olabileceğini düşündüm, ama gönderim için mesajlar biraz farklı. 1) Bir uygulama oluşturmaya gidiyorum çünkü 1) LogCat'ın bir şey gösterip göstermeyeceğini bilmiyorum ve 2) Kişisel/dev telefonumu her zaman bir PC'ye takmak istemiyorum ("Gönderme" olarak) ... "mesaj çok seyrek ortaya çıkar".

+0

Uygulamanızı bitirip Google Play'e mi eklediniz? –

+0

@ divideandconquer.se Sadece google oyunda yayınlamadım, sadece konuyu takip ediyordum. Ama işe yaramadı. Mesaj önceden yüklenmiş olan Sim Tool Kit'ten geliyordu. Android 4.1 beri bildirimler google oyun ile hiç rahatsız değil bildirimler onları hangi uygulama bunları oluşturduğunu söylüyor. – JonWillis

+4

@ divideandconquer.se Bu sorudan bir uygulama yaptım: https://play.google.com/store/apps/details?id=org.mars3142.android.toaster – mars3142

cevap

16

Accessibility Service ile Mesajları/Bildirimleri yakalamak mümkün, buna bir göz atın.

Derslere AccessibilityService genişletmek ve böyle bir şey uygulamak için yöntem onAccessibilityEvent() geçersiz kılabilirsiniz:

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... 
    } 
} 

Not: tost yakalamak için görünmüyor gibi bu Android 2.2 benim için işe yaramadı ama Android 4.0+ üzerinde çalıştı.

+0

Ben ona bir şey vereceğim ve – JonWillis

+0

Hizmetin çalışmasını almak için bir süre ayırın. Ama işe yaradı. Tost mesajı gönderiliyor ... com.android.stk adresinden geliyor. – JonWillis

+0

güzel çalışıyor. Bir süredir bunun için baktım. bir kez 4.0, tabloları vurmak biraz komik, ama bu düzeltir şeyler :) –

İlgili konular