3

次の問題があります。通知バーから通知が削除されたことを検出したい。

AccessbilityService で通知をスキャンし、その ParcelableData を通知にキャストできます

Notification notif = (Notification) event.getParcelableData();

私の考えの 1 つは、通知の PendingIntent がクリックされたかどうかを利用することでしたが、それを検出する方法については何も見つかりません。

何か案は?私はちょっと必死です...今何時間も試しています。

4

4 に答える 4

4

Notification.Builder で setDeleteIntent を使用できます。

http://developer.android.com/reference/android/app/Notification.Builder.html#setDeleteIntent(android.app.PendingIntent)

あなたがやりたいことをするのに使うことができます(あなたには遅すぎると思いますが、他の誰かを助けることができます)

于 2014-11-10T14:12:15.850 に答える
1

私が知る限り、これは root 権限を持っていないと不可能ですが、昨日リリースされた android 4.3 から可能です。ここにいくつかのリンクがあります:

Android 開発者ブログ:

通知へのアクセス — アプリは、投稿されたステータス バー通知のストリームにアクセスして対話できるようになりました。近くのBluetoothデバイスにルーティングするなど、好きな方法で表示でき、必要に応じて通知を更新および非表示にすることができます.

アンドロイド開発者ウェブサイト:

Android 4.3 では、新しいサービス クラス NotificationListenerService が追加されました。これにより、アプリは、システムによって投稿された新しい通知に関する情報を受け取ることができます。

現在アプリがアクセシビリティ サービス API を使用してシステム通知にアクセスしている場合は、代わりにこれらの API を使用するようにアプリを更新する必要があります。

Android デベロッパー ウェブサイト - API の説明:

通知へのアクセス

通知は、ユーザーがシステム全体からの情報と更新をすべて 1 か所で確認できるため、長い間人気のある Android 機能でした。Android 4.3 では、アプリはユーザーの許可を得て通知のストリームを観察し、Bluetooth 経由で接続された近くのデバイスに通知を送信するなど、任意の方法で通知を表示できます。

通知リスナー サービスを登録し、ユーザーの許可を得て、ステータス バーに表示される通知を受け取ることができる新しい API を介して通知にアクセスできます。元のアプリ、投稿時間、コンテンツ ビューとスタイル、および優先度に関するすべての詳細を含む、完全な通知が配信されます。通知で関心のあるフィールドを評価し、アプリからコンテキストを処理または追加し、任意の方法で表示するためにそれらをルーティングできます。

新しい API は、通知が追加、更新、削除されたときにコールバックを提供します (ユーザーが通知を却下したか、元のアプリが通知を撤回したため)。通知またはそのアクションに添付されたインテントを起動したり、システムから破棄したりできるため、アプリは通知に完全なユーザー インターフェイスを提供できます。

もちろん、この新しいリスナーの API ドキュメントは、このリンクにあります。

于 2013-07-25T21:32:38.433 に答える
1

非常によく似た質問が SO ですでに回答されています。

新しい Android 通知を検出する

要するに、新しい通知がいつ表示されるかを検出することは可能ですが、それだけです。通知がいつ閉じられたかを検出することはできません。

于 2013-03-19T17:36:26.260 に答える