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

问题描述 投票:2回答:1

情况:

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

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
android string android-notifications spannablestring
1个回答
0
投票

就我而言,奋斗了将近3个小时

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

像魅力一样工作

© www.soinside.com 2019 - 2024. All rights reserved.