首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >收听传入的Whatsapp消息/通知

收听传入的Whatsapp消息/通知
EN

Stack Overflow用户
提问于 2013-01-27 02:55:50
回答 3查看 72.6K关注 0票数 35

我正在开发一个基于通知的应用程序,我需要监听传入的通知。我已经能够监听来电、短信、邮件等。我不知道如何通过代码监听Whatsapp上朋友的ping或消息。这真的可以做到吗?如果是这样的话,是怎么做的?使用包名为"com.whatsapp“的Accessibility Service可以做到这一点吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-16 14:53:22

我可以使用Accessibility Service做到这一点。使用此功能,您可以收听通知栏上的所有通知。我通过将包名称添加到可访问性服务service info (在本例中为com.whatsapp )来听取应用程序规范。我无法读取消息,但只要有消息到达,我就会收到通知。

票数 20
EN

Stack Overflow用户

发布于 2013-02-19 17:18:20

辅助功能事件只捕获传入的通知事件,而不是在更新时捕获。目前,WhatsApp通知不会显示消息,只会显示发件人。然后,WhatsApp应用程序将该消息添加到更新中,但辅助功能服务无法捕获该更新。

您将只有类似于"1条来自XXX的新消息“的内容,但这可能足以满足您的需求。

票数 3
EN

Stack Overflow用户

发布于 2017-12-22 14:35:18

请参阅下面的示例来捕获whatsapp通知:

代码语言:javascript
复制
public class Notifier extends AccessibilityService {


@Override
public void onCreate(){
    //Toast.makeText(this,"Oncreate", Toast.LENGTH_LONG).show();

}

@Override
protected void onServiceConnected() {
    // Set the type of events that this service wants to listen to.  Others
    // won't be passed to this service.
    Toast.makeText(this,"Service connected", Toast.LENGTH_LONG).show();
    AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_ALL_MASK;;
    info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED ;

    // If you only want this service to work with specific applications, set their
    // package names here.  Otherwise, when the service is activated, it will listen
    // to events from all applications.
    info.packageNames = new String[] {"com.whatsapp"};
    info.notificationTimeout = 100;

    setServiceInfo(info);

}

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {

    if(event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {

            Toast.makeText(this,"Notification Catched", Toast.LENGTH_LONG).show();
        }

    }
}

别忘了设置settings>Accessibility的权限才能访问系统事件。允许来自设置的权限。

检查此链接

accessibility service is not started

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14540394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档