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提取信息的建立,例如,该活动(如果有的话)它指向。
我可以建立的鼻祖,使用进一步规范代码:
final String packageName = event.getPackageName().toString()
这是在大多数情况下罚款,但许多通知是从谷歌服务框架或Android系统,因此PendingIntent信息将给予进一步的线索至于究竟是什么 - 一个很好的例子就是GTalk,它在Google服务框架的通用包名下。
我读了很多related posts,包括如何action the Pending Intent,但我不能解决如何访问这些信息,或者如果可能的话。
pi.getCreatorPackage();
pi.getTargetPackage();
都返回谷歌服务框架(在GTalk的情况下)
pi.readPendingIntentOrNullFromParcel(?);
看起来有点更有前途,但我不知道该怎么办。
我希望你能帮忙,或者告诉我这是不可能的!先谢谢你。
感谢您的回复。它确实显示你是正确的,因为我什么也找不到。我会再给它几天的希望,然后标记你的答案是正确的。你知道我能从反射中得到什么吗? – brandall 2013-05-06 17:13:04
不幸的是,没有。我试过这个。我通过了'PendingIntent','ActivityManager'和'ActivityManagerNative'源代码挖它看起来像有一些包含与'Intent'联的实际数据没有方法(甚至私人的方法)或字段。这些数据均保持了'ActivityManagerService'内有不似乎是访问这个数据的任何可调用的方法。抱歉。 – 2013-05-06 18:02:14
感谢您的确认。标记(不幸!)正确。 – brandall 2013-05-06 18:55:19