我正在为我的 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(?);
看起来更有希望,但我不知道该怎么做。
我希望你能帮忙,或者告诉我这是不可能的!先感谢您。