来自WhatsApp或任何其他应用程序的Android通知的数据

时间:2016-09-23 14:06:13

标签: android android-studio

我想从通知栏中获取我的Android中的 whatsapp消息的数据是否有可能获得此

1 个答案:

答案 0 :(得分:4)

您需要通过扩展NotificationListenerService来创建服务来收听传入的通知,其中您将有一个方法回调:

@Override
    public void onNotificationPosted(StatusBarNotification sbn) { .... }

您将获得该特定通知中的所有数据。

如果您只想要WhatsApp通知,则可以添加过滤器  它与包名称匹配,如:sbn.getPackageName().matches("com.whatsapp")

Here是有关StatusBarNotification

的更多信息

要获取通知的标题/内容(消息),您需要从包Bundle bundle = statusBarNotification.getNotification().extras;中提取它们,您可以使用以下内容从包中提取消息:

private String getDataFromBundle(Bundle bundle) {
        Object data = bundle.get("android.bigText");
        if (data == null) {
            data = bundle.get("android.text");
        }
        return data == null? "" :data.toString();
    }

PS:不要忘记在清单中注册您的服务..