gpt4 book ai didi

android - NotificationListenerService 不读取堆叠通知的文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:11 25 4
gpt4 key购买 nike

我希望这不会违反任何规则,因为我已尝试遵循如何提问指南。

我正在尝试使用 NotificationListenerService 读取传入的通知,它对我有用,但只是部分有用。

它的第一个通知类型,比方说 - whatsapp 我可以获得代码、文本和标题,但如果通知堆积起来,我将无法再阅读消息的文本。

如何获取堆叠通知的文本?

这是我目前实现的代码:

public class NotificationService extends NotificationListenerService {

private Context context;


@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();

}

@Override
public void onNotificationPosted(StatusBarNotification sbn) {
String pack = sbn.getPackageName();
String ticker = sbn.getNotification().tickerText.toString();
Bundle extras = sbn.getNotification().extras;
String title = "";
String text = "";


if (extras.containsKey("android.title")) {
title = extras.getString("android.title");
}

if (extras.containsKey("android.text")) {
if (extras.getCharSequence("android.text") != null) {
text = extras.getCharSequence("android.text").toString();
}
}
if (pack != null) {
Log.i("Package", pack);
}

if (ticker != null) {
Log.i("ticker", ticker);
}

if (title != null) {
Log.i("Title", title);
}

if (text != null) {
Log.i("Text", text);
}


}

@Override
public void onNotificationRemoved(StatusBarNotification sbn) {

}


}

最佳答案

如果您使用的是 Android 7.0+,WhatsApp 使用 MessageStyle Expanded Notifications。这里 - https://developer.android.com/training/notify-user/expanded.html#message-style

从通知中检索所有 5 条消息,例如

MyFriend (5 messages)
testt

这样做:

Bundle extras = mysbn.getNotification().extras;
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)){
Parcelable b[] = (Parcelable[]) extras.get(Notification.EXTRA_MESSAGES);

if(b != null){
content = "";
for (Parcelable tmp : b){

Bundle msgBundle = (Bundle) tmp;
content = content + msgBundle.getString("text") + "\n";

/*Set<String> io = msgBundle.keySet(); // To get the keys available for this bundle*/

}
}
}

关于android - NotificationListenerService 不读取堆叠通知的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com