【问题标题】:Send text to whatsapp number progrmatically without open intent在没有公开意图的情况下以编程方式将文本发送到 whatsapp 号码
【发布时间】:2020-05-17 17:07:08
【问题描述】:

我有一个向 Whatsapp 号码发送短信的代码。但是,每当我发送消息时,它都会打开 Whatsapp。如何在不打开 Whatsapp 应用程序的情况下发送短信?

String smsNumber = "9230......."; 
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.putExtra("jid", smsNumber + "@s.whatsapp.net");  
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    您不能这样做,因为 WhatsApp 不提供ContentProviders。 所以在 Android 中合法的做事方式是使用 Intents。

    但是,如果您真的想向 WhatsApp 发送消息并使其自动化,我想您可以创建AccessibilityService,它将专注于 WhatsApp 包的事件,打开应用程序以发送消息,然后自动关闭它。请记住,这不是一个解决方案,这是一个 hacky 解决方法,不应该在生产中使用,只是为了感兴趣,我认为它是可行的。

    【讨论】:

      【解决方案2】:

      您只能使用 Android 的 Accessibility API 来做到这一点。

      这个想法很简单,你实际上会让 Android 执行点击 Whatsapp 的发送按钮。

      所以流程将是:

      1. 发送一条常规消息(带有您当前使用的意图),并在消息内容的末尾添加一个后缀,例如“由 MY_APP 发送”。

      2. 一旦文本出现,您的无障碍服务将收到 WhatsApp 的 EditText 已填满的通知。

      3. 如果后缀出现在 WhatsApp 的 EditText 上,您的无障碍服务将点击发送按钮。 (这是为了避免在用户键入常规消息时执行操作)。

      查看代码click here的链接了解更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        • 2017-02-13
        • 1970-01-01
        • 1970-01-01
        • 2014-12-06
        • 2013-10-05
        • 1970-01-01
        相关资源
        最近更新 更多