Я сейчас пишу Android Приложение для Volvo SCT unit . Android широковещательно указывает устройство c намерения.
- com.parrot.asteroid.AUDIO_ON
- com.parrot.asteroid.AUDIO_OFF
Согласно к логам в эти намерения добавлена дополнительная информация.
Historical Broadcast #82:
BroadcastRecord{40715c10 com.parrot.asteroid.AUDIO_ON}
Intent { act=com.parrot.asteroid.AUDIO_ON (has extras) }
caller=com.parrot.audioservice 40527460 2700:com.parrot.audioservice/10016 pid=2700 uid=10016
dispatchTime=-30s781ms finishTime=-30s777ms
resultTo=null resultCode=0 resultData=null
nextReceiver=1 receiver=null
state=0 (IDLE)
Можно ли получить эту информацию, ничего не зная об этом? Я попытался сбросить Intent с помощью функции ниже, но она не удалась, за исключением неизвестного объекта. Проблема в том, что я ничего не знаю об этом объекте. Можно ли как-то сбросить этот объект и проанализировать его данные?
Реализация:
public static void dumpIntent(Intent i){
Bundle bundle = i.getExtras();
if (bundle != null) {
Set<String> keys = bundle.keySet();
Iterator<String> it = keys.iterator();
Log.e("BCU","Dumping Intent start");
while (it.hasNext()) {
String key = it.next();
Log.e("BCU","[" + key + "=" + bundle.get(key)+"]");
}
Log.e("BCU","Dumping Intent end");
}
}
Ошибка, которую я получаю
V/BCU: intent:Intent { act=com.parrot.asteroid.AUDIO_ON cmp=lv.car.bcu/.MusicBroadcastReceiver (has extras) }
E/Parcel: Class not found when unmarshalling: com.parrot.asteroid.audio.service.lowlevel.HSTIPlayerInfo, e: java.lang.ClassNotFoundException: com.parrot.asteroid.audio.service.lowlevel.HSTIPlayerInfo
W/System.err: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.parrot.asteroid.audio.service.lowlevel.HSTIPlayerInfo
at android.os.Parcel.readParcelable(Parcel.java:1958)
at android.os.Parcel.readValue(Parcel.java:1846)
at android.os.Parcel.readMapInternal(Parcel.java:2083)
at android.os.Bundle.unparcel(Bundle.java:208)
at android.os.Bundle.keySet(Bundle.java:295)
at lv.car.bcu.MusicBroadcastReceiver.dumpIntent1(MusicBroadcastReceiver.java:55)
at lv.car.bcu.MusicBroadcastReceiver.onReceive(MusicBroadcastReceiver.java:28)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:1797)
at android.app.ActivityThread.access$2400(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3686)
at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err: at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)