【发布时间】:2013-05-04 12:37:09
【问题描述】:
我正在为我的 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,它是在 Google Services Framework 的通用包名下。
我已经阅读了很多related posts,包括如何访问action the Pending Intent,但我不知道如何才能访问这些信息,或者如果可能的话。
pi.getCreatorPackage();
pi.getTargetPackage();
两者都返回 Google 服务框架(在 GTalk 的情况下)
pi.readPendingIntentOrNullFromParcel(?);
看起来更有希望,但我不确定如何处理它。
我希望你能帮忙,或者告诉我这是不可能的!提前谢谢你。
【问题讨论】:
标签: android android-intent accessibility android-pendingintent