我正在编写我的第一个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)