无法读取包含SpannableString而不是常规String

情况:

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

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的通知,其内容为:“ 粗体常规文本”

请注意,某些字符以粗体显示。 (如果没有加粗,则不会引发异常)。

问题:

有没有办法让我以字符串形式获取此文本?

我已经尝试失败了:

  • 将其投射到字符串中。
  • 正在寻找不同于getString的其他方法来获取文本 来自临时演员
  • 在字符串末尾添加“”
  • 检查函数是否使用以下命令返回SpannableString 'instanceof',然后将其转换为SpannableString
guipingex 回答:无法读取包含SpannableString而不是常规String

在我的情况下,挣扎了将近3个小时

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

像魅力一样工作

,
sbn.notification.extras.get(Notification.EXTRA_TEXT)**.toString()**

这将100%起作用

本文链接:https://www.f2er.com/3032314.html

大家都在问