2012-05-18 10 views
9

私はSDKのドキュメントにはまだ見つかっていないので、これは可能ではないと思います。トーストメッセージの検出

しかし、Toastメッセージを記録するアプリケーションを作成することが可能かどうかを知ることができます。アプリケーションが表示したログと表示されたメッセージ

これはトーストメッセージを検出できるアプリを作成するための完全な個人的な取り組みです。私の電話で何かが「Sending ...」というトーストを1日に約1回作成しているので、私の人生では問題のアプリケーション(サービスクラス)を追跡できません。私はそれがGMailかEvernoteかもしれないと思ったが、送信のためのトーストメッセージは若干異なっている。私は、1)LogCatに何かが表示されるかどうかわからない、2)私のパーソナル/ devの電話をPCに常時接続しないようにする(「送信する」 ... "というメッセージが頻繁には発生しません)。

+0

アプリを完成してGoogle Playに入れましたか? –

+0

@ divideandconquer.se私はちょうど問題を追跡していたので私はGoogleの演劇にそれを掲載したことはありません。しかし、それはうまくいった。このメッセージは、あらかじめインストールされたSim Tool Kitからのものです。私はアンドロイド4.1以来、どのアプリがそれらを作成したか通知を通知して以来、私はGoogleプレイで心配したことはありません。 – 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... 
    } 
} 

注:トーストをキャッチしていないようですので、これは、Android 2.2に私のために動作しませんでした、 Android 4.0以降でも動作しました。

+0

私はそれを行って行きます結果を知らせてください – JonWillis

+0

サービスを稼働させるためにしばらく時間がかかりました。しかし、それは働いた。 com.android.stk – JonWillis

+0

から届くトーストメッセージがきれいに動作します。これを探していました。一度4.0は少し面白いときにテーブルを打つが、これはそれを修正:) –

関連する問題