我正在研究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(?);
看起来更有前途,但我不知道该怎么做。
我希望你能提供帮助,或者告诉我这是不可能的!提前谢谢。
答案 0 :(得分:1)
不幸的是,这是不可能的。 PendingIntent
的内容由ActivityManager
管理,并且没有可用于从ActivityManager
获取此数据的API。