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