2

Android アプリケーションのアクセシビリティ機能に取り組んでいます。そのうちの 1 つは、ユーザーに通知を通知することです。

次の標準コードを使用して、通知情報にアクセスできます。

@Override
public void onAccessibilityEvent(final AccessibilityEvent event) {

        final Notification not = (Notification) event.getParcelableData();
        final CharSequence tick = not.tickerText;
        final PendingIntent pi = not.contentIntent;

しかし、ここでは、PendingIntent から情報を抽出して、たとえばどのアクティビティ (存在する場合) を指しているかを確立する方法に行き詰まっています。

次の標準コードをさらに使用して、発信者を確立できます。

final String packageName = event.getPackageName().toString()

ほとんどの場合、これで問題ありませんが、多くの通知は Google サービス フレームワークまたは Android システムからのものであるため、PendingIntent情報は、それらが正確に何であるかについてのさらなる手がかりを提供します。これの良い例は、一般的なパッケージ名の下にある GTalk です。 Google サービス フレームワークの。

Pending Intentを操作する方法など、関連する多くの投稿を読みましたが、この情報にアクセスする方法、または可能かどうかはわかりません。

pi.getCreatorPackage();
pi.getTargetPackage();

どちらも Google Services Framework を返します (GTalk の場合)

pi.readPendingIntentOrNullFromParcel(?);

もう少し有望に見えますが、どうすればよいかわかりません。

あなたが助けてくれることを願っています。あるいは、それは不可能だと言ってください! 前もって感謝します。

4

1 に答える 1

1

残念ながら、これは不可能です。のコンテンツはPendingIntentによって管理されてActivityManagerおり、 からこのデータを取得するために使用できる API はありませんActivityManager

于 2013-05-06T12:17:54.603 に答える