2

我正在为我的 Android 应用程序开发辅助功能,其中之一是向用户宣布他们的通知。

使用以下标准代码,我可以访问通知信息:

@Override
public void onAccessibilityEvent(final AccessibilityEvent event) {

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

但是在这里,我被困在如何从 PendingIntent 中提取信息以建立例如它指向的 Activity(如果有的话)。

我可以使用以下标准代码来确定发起人:

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

在大多数情况下这很好,但许多通知来自 Google 服务框架或 Android 系统,因此PendingIntent信息将提供有关它们到底是什么的进一步线索 - 一个很好的例子是 GTalk,它位于通用包名称下谷歌服务框架。

我已经阅读了许多相关的帖子,包括如何操作 Pending Intent,但我无法弄清楚如何访问这些信息,或者是否有可能。

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

两者都返回 Google 服务框架(在 GTalk 的情况下)

pi.readPendingIntentOrNullFromParcel(?);

看起来更有希望,但我不知道该怎么做。

我希望你能帮忙,或者告诉我这是不可能的!先感谢您。

4

1 回答 1

1

不幸的是,这是不可能的。的内容由PendingIntent管理,ActivityManager并且没有 API 可用于从ActivityManager.

于 2013-05-06T12:17:54.603 回答