首页 > 解决方案 > 无法读取包含 SpannableString 而不是常规字符串的通知

问题描述

情况:

我有正在阅读通知文本的代码

String notificationText = sbn.getNotification().extras.getString("android.text");

并且在读取带有特殊字符的通知时会导致以下错误:

Key android.text expected String but value was a android.text.SpannableString.  
The default value <null> was returned. 
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String

导致此错误的特定文本是来自 com.whatsapp 的通知,其文本为:“粗体文本常规文本”

请注意,某些字符以粗体显示。(没有粗体不会抛出异常)。

问题:

有没有办法让我将此文本作为字符串?

我已经尝试过没有成功:

标签: androidstringandroid-notificationsspannablestring

解决方案


就我而言,挣扎了将近 3 个小时

String.valueOf(sbn.getNotification().extras.get("android.text"));

像魅力一样工作


推荐阅读