听来电WHATSAPP消息/通知(Listen to incoming Whatsapp messa

2019-07-18 18:52发布

我工作的通知基于应用程序,为此,我需要听来电通知。 我已经能够听来电,短信,邮件等。我不知道如何监听来自通过代码在WhatsApp的朋友坪或消息。 可这实际上做什么? 如果是这样,怎么样? 可以无障碍服务可以用于此,使用程序包名称为“com.whatsapp”?

Answer 1:

我能做到这一点使用辅助服务 。 利用这一点,你可以听的通知栏上的所有通知。 我加入了包名的辅助服务,听取了应用规范service info ,在这种情况下是com.whatsapp 。 我无法读取的消息,但每当有消息到达我得到通知。



Answer 2:

实际上,你可以由于Android 4.2中解析收到的通知和消息。 我已经做到了这一点: https://github.com/Snirpo/whatsapprelay 。 这与accessibilityservice完成。 目前,它解析从某一个WhatsApp的组消息。 但它可以被用于解析所有消息。 发送消息槽的WhatsApp是比较困难的不幸。



Answer 3:

除非该应用程序的开发人员故意共享服务,内容提供商,或者故意发送事件的公共广播或公开自定义广播注册系统中,采用的是Android没有合法的方式去倾听第三方应用程序的内部工作。 应用程序隔离设计的Android的一个非常重要的原因: 安全



Answer 4:

可访问性事件只能望尘莫及收到的通知事件,而不是当它们被更新。 现在,WhatsApp的通知不显示信息,只有发件人。 该消息随后由一个更新,这不能由辅助服务被捕获的WhatsApp的应用添加。

您只需像“从XXX 1个新信息”,但可能是足够您的需求。



Answer 5:

见下面的例子赶上WhatsApp的通知:

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();
        }

    }
}

而且不要忘记设置从设置>辅助功能权限才能访问系统事件。 允许从设置权限。

检查此链接

无障碍服务未启动



文章来源: Listen to incoming Whatsapp messages/notifications