Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在后台发送WhatsApp消息或在android中发送消息并关闭应用程序_Android_Whatsapp - Fatal编程技术网

在后台发送WhatsApp消息或在android中发送消息并关闭应用程序

在后台发送WhatsApp消息或在android中发送消息并关闭应用程序,android,whatsapp,Android,Whatsapp,是否可以在不打开应用程序的情况下发送whatsApp消息,在后台发送,如使用以下方式发送短信: smsManager.sendTextMessage("+12546304580", null, "Test Message", null, null); <service android:name="com.app.DefaultAccessibility" android:enabled="true" android:permissi

是否可以在不打开应用程序的情况下发送whatsApp消息,在后台发送,如使用以下方式发送短信:

smsManager.sendTextMessage("+12546304580", null, "Test Message", null, null);
    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
如果是,怎么做?我尝试的代码打开应用程序(有意):

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
或者,是否可以打开应用程序并将消息发送到给定地址,然后关闭它

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>

谢谢

我不认为存在任何这样的方式,否则其他人可能已经在使用它了,因为它是最理想的功能之一。
    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
短信和WhatsApp有很大不同。 短信已深入系统

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
但是,如果您希望通过Whatsap自动化文本,可以通过其他不涉及编码的方法来实现。
很抱歉,我还不能对n个问题发表评论,所以我将此作为回答。

不,这是不可能的,因为Whatsapp不提供内容提供商,将来也不会提供

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
可以重新分解和实现基于jabber的协议

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
你需要处理握手等问题

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
无论如何,这是不可能的,如果你不想组装整个网络的东西,即使使用root也不行

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
由于您的第二个问题(例如捕获Whatsapp消息并关闭应用程序):

    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>
您将需要一个可访问性服务,它捕获给定包上的所有传入事件。示例如下:

public static final String FACEBOOK_PACKAGE_NAME = "com.facebook.orca";

public class DefaultAccessibility extends AccessibilityService {
  @Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    final int eventType = event.getEventType();
    try {
        if (Build.VERSION.SDK_INT >= 16) {
            switch (eventType) {
                case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED:
                Notification notification = (Notification) event.getParcelableData();
                if (event.getPackageName().equals(WHATSAPP_PACKAGE_NAME)) {
                        RemoteViews views = notification.bigContentView;
                        Class<?> secretClass = views.getClass();
                        ArrayList<String> raw = new ArrayList<String>();
                        Field outerFields[] = secretClass.getDeclaredFields();
                        for (Field outerField : outerFields) {
                            if (outerField.getName().equals("mActions")) {
                                outerField.setAccessible(true);
                                ArrayList<Object> actions = null;
                                try {
                                actions = (ArrayList<Object>) outerField.get(views);
                                for (Object action : actions) {
                                Field innerFields[] = action.getClass()getDeclaredFields();

                                        Object value = null;
                                        Integer type = null;
                                        for (Field field : innerFields) {
                                            try {
                                                field.setAccessible(true);
                                                if (field.getName().equals("type")) {
                                                    type = field.getInt(action);
                                                } else if (field.getName().equals("value")) {
                                                    value = field.get(action);
                                                }
                                            } catch (IllegalArgumentException e) {
                                            } catch (IllegalAccessException e) {
                                            }
                                        }

                                        if (type != null && type == 10 && value != null) {
                                            raw.add(value.toString());
                                        }
                                    }
                                } catch (IllegalArgumentException e1) {
                                } catch (IllegalAccessException e1) {
                                }
                            }
                            parseWhatsappRawMessages(raw);

                        }
                }
}
    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>

我相信这是可能的,因为第三方Android Wear应用程序Quick for Wear允许您直接从手表发送Whatsapp、Messenger、Gmail等消息。

Hmm。是否可以将消息发送到特定地址并关闭应用程序?是的。这是可能的。您可以创建一个AccessibilityService,它专注于侦听包com.whatsapp的事件。你也可以抓取文本。然后很容易终止这个过程。更新你的问题,我会发给你一段示例代码。
    <service
        android:name="com.app.DefaultAccessibility"
        android:enabled="true"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"></action>
        </intent-filter>
        <meta-data
            android:name="android.accessibilityservice"
            android:resource="@xml/accessibilityservice"/>
    </service>