首页 > 解决方案 > 如何从 Android Studio 中的 Java 代码通知中获取 Whatsapp 个人资料照片

问题描述

伙计们,我正在使用 NotificationListenerService 获取 WhatsApp 消息 但现在我有一个问题,我不知道如何从通知中获取 Whatsapp 个人资料照片 所以这里是代码以及我如何获取 WhatsApp 通知 但我的问题实际上是如何从通知中获取 WhatsApp 个人资料照片

public class NotificationListener extends NotificationListenerService {

// StaticFields:
public static final String WHATSAPP_PACKAGE_NAME = "com.whatsapp";
// TAGS:
private static final String TAG = "NotificationListener";
private static final String NP_FIELD = "onNotificationPosted: ";

@Override
public void onNotificationPosted(StatusBarNotification sbn) {
    super.onNotificationPosted(sbn);
    // Fields:
    ARPreferencesManager manager = new ARPreferencesManager(getApplicationContext());
    String currentPackages = manager.getStringPreferences(ARPreferencesManager.PACKAGE_APP_NAME);
    List<Chat.Messages> messages = new ArrayList<>();
    // CheckingStatusBarNotification:
    if (sbn.getPackageName().equals(WHATSAPP_PACKAGE_NAME)) {
        // Initializing(DateTime):
        String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(new Date());
        List<Chat> chats;
        // Initializing(Data):
        String sender = sbn.getNotification().extras.getString(Notification.EXTRA_TITLE);
        String msg = sbn.getNotification().extras.getString(Notification.EXTRA_TEXT);
        String currentSenders = manager.getStringPreferences(ARPreferencesManager.SENDER_NAME);
        // AddingData:
        messages.add(new Chat.Messages(msg));
        // Developing:
        if (manager.getPreferences().contains(ARPreferencesManager.WHATSAPP_CHATS)) {
            // Initializing:
            chats = ARUtils.fromJsonToChats(manager.getStringPreferences(ARPreferencesManager.WHATSAPP_CHATS));
            // Developing:
            for (Chat chat : chats) {
                if (chat.getSender().equals(sender)) {
                    // AddingTheNewMessage:
                    chat.getMessages().addAll(messages);
                    // AddingSender($Preferences):
                    if (!currentSenders.contains(sender)) {
                        // Initializing:
                        manager.setStringPreferences(ARPreferencesManager.SENDER_NAME, sender + ",");
                        // Refreshing:
                        currentSenders = manager.getStringPreferences(ARPreferencesManager.SENDER_NAME);
                    }
                }
            }
            // CheckingSenders:
            if (!currentSenders.contains(sender)) {
                // Initializing:
                Chat chat = new Chat(sender, "", date, null, messages);
                // AddingTheNewChat:
                chats.add(chat);
            }
        } else {
            // Initializing:
            chats = new ArrayList<>();
            // Developing:
            chats.add(new Chat(sender, "", date, null, messages));
        }
        // SettingPreferences:
        manager.setStringPreferences(ARPreferencesManager.WHATSAPP_CHATS, ARUtils.fromChatsToJson(chats));
        // Debugging:
        ARUtils.debug(TAG, NP_FIELD, manager.getStringPreferences(ARPreferencesManager.WHATSAPP_CHATS));
    }
    // Debugging:
    ARUtils.debug(TAG, NP_FIELD, "Whatsapp Package Was Founded In Preferences");
    // Debugging:
    ARUtils.debug(TAG, NP_FIELD, "Start");
}

标签: javaandroidkotlinnotificationsandroid-notifications

解决方案


推荐阅读