通知領域に表示される新しい通知ごとにイベントを取得したい。そのために、次に示すようにaccessibilityEventを使用します。私の問題は、あまりにも多くのイベントが発生することです。自分のアプリケーションイベントも取得します。しかし、それらの多く(ほとんど)は通知に関するものではありません。電話が充電されている場合、私は10秒ごとに乗ります。エミュレーターでは、2秒ごとに(多かれ少なかれ)アプリケーションからイベントを取得します。
問題は、タスクバーに新しい通知が表示されているかどうかを知る方法はあるかということです。または、通知以外のすべてのイベントをスキミングするにはどうすればよいですか?
これは私が使用するコードです:
マニフェスト:
<service android:name=".MyAccessibilityEventClass" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter >
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
</service>
そして、ファイルres / xml / accessibilityservice.xml:
android:accessibilityEventTypes = "typeNotificationStateChanged" android:accessibilityFeedbackType = "feedbackSpoken" android:notificationTimeout = "100" />
MyAccessibilityEventClassの場合:
@Override public void onAccessibilityEvent(AccessibilityEvent event)
{ if(event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED)
{ final String s = String.valueOf(event.getPackageName());
ShowToast(s); <-- Too many messages because too many events
}
}
皆さん、ありがとうございました