如何在Android通知的附加功能中反序列化包裹"android.messages"?



我正在编写我的第一个Android应用程序,其中包括NotificationListenerService,用于向其他设备进行通知镜像。我注意到,对于消息应用程序,来自同一发送者的后续消息用相同的ID/密钥发布;android.text";额外字段。

我的目标是获取以前未读的消息,这些消息看起来被附加到CCD_;android.messages";额外的我的问题是,它不会读取到char序列或字符串数组,相反,它看起来像是实现Parcellable的某个类存储在这里。

我希望这里使用了一些我缺少的标准Android类,我可以使用它来反序列化,以便获得以前的消息。

部分代码:

val pArray: Array<Parcelable>? = bundle.getParcelableArray("android.messages") // Parcelable[6]@17975
println(pArray?.get(0)?.describeContents()) // 1 == CONTENTS_FILE_DESCRIPTOR
val charSequence: Array<CharSequence>? = bundle.getCharSequenceArray("android.messages") // null
val list = bundle.getStringArrayList("android.messages") //  null
val arr = bundle.getStringArray("android.messages") // null

如果有人偶然发现了这个线程,我就想好了怎么做:

val pArray: Array<Parcelable> = bundle.getParcelableArray("android.messages") as Array<Parcelable>
val messages = Notification.MessagingStyle.Message.getMessagesFromBundleArray(pArray)

最新更新