2012-05-18 4 views
9

SDK 설명서에서 아직 찾지 못했기 때문에 이것이 가능하지 않다고 생각합니다.토스트 메시지 감지

하지만 Toast 메시지를 기록하는 응용 프로그램을 작성할 수 있는지 여부는 알 수 있습니다. 어떤 응용 프로그램에서 표시했는지와 표시된 메시지가 기록 된 로깅.

토스트 메시지를 감지 할 수있는 앱을 만드는 것은 완전히 개인적인 노력입니다. 내 휴대 전화에서 무언가가 하루에 한 번씩 "보내는 중 ..."이라는 축배를 내고 있기 때문에 나에게 문제가되는 응용 프로그램 (서비스 클래스)을 추적 할 수는 없습니다. GMail 또는 Evernote일지도 모른다고 생각했지만 발신 메시지는 약간 다릅니다. 나는 1) LogCat이 어떤 것을 보여줄지 모르겠다. 2) 내 개인/dev 전화를 항상 PC에 연결하고 싶지 않다. ("보내는 중" ... "메시지가 너무 자주 발생 함).

+0

앱을 완성하고 Google Play에 등록 했습니까? –

+0

@ divideandconquer.se Google Play에 게시 한 적은 없지만 문제를 추적하고있었습니다. 그러나 그것은 효과가있었습니다. 이 메시지는 미리 설치된 Sim Tool Kit에서 온 것입니다. 나는 안드로이드 4.1 이후 구글 플레이로 결코 귀찮게하지 않았다. – 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에서 나를 위해 작동하지 않았다, Android 4.0 이상에서 작동했습니다.

+0

나는이 질문에서 앱을 만들었습니다. 결과를 알려주십시오 – JonWillis

+0

잠시 시간을내어 서비스를 작동 시키십시오. 그러나 효과가있었습니다. 토스트 메시지를 보내는 중 ... com.android.stk – JonWillis

+0

에서 아름답게 작동합니다. 한동안 이걸 찾고 있었어. 한 번 4.0 테이블을 좀 재밌, 때 물건을 누르십시오 :)이 –

관련 문제