【问题标题】:How to directly send a message to a contact through WhatsApp from my app with just one click?如何一键从我的应用程序中通过 WhatsApp 直接向联系人发送消息?
【发布时间】:2015-07-04 18:13:49
【问题描述】:

我需要使用 WhatsApp 从我的应用程序向选定的联系人发送消息。我有联系人姓名、电话号码、ID 和要发送的消息。只需要能够发送它,而无需在 WhatsApp 或应用程序中选择联系人来共享消息。 我已经测试了几种方法,但我没有找到任何可行的解决方案,最简单的方法如下:

Uri uri = Uri.parse("smsto:" + number);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.putExtra("sms_body", "message");
i.setPackage("com.whatsapp");  
startActivity(i);

使用这种方法会自动选择联系人,但随后会在 WhatsApp 中弹出该联系人的对话,最糟糕的是,该消息甚至不存在。有了那里的消息,我只需要点击发送就可以了,即使我需要一次完成所有操作。

提前致谢!

PD:感谢 root 的回答,但这是我最后的选择,我只需要能够从非 root 设备发送消息。

【问题讨论】:

    标签: android whatsapp sendmessage


    【解决方案1】:

    目前您还不能这样做,因为 WhatsApp 尚未向开发人员开放其 API。你能做的最好的就是按照here的描述。

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.setPackage("com.whatsapp");
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    startActivity(sendIntent);
    

    这很奇怪,因为显然你可以通过传递一些额外的参数来select the contact in iOS

    【讨论】:

      【解决方案2】:

      坦率地说,目前没有公共 API 可用于为特定联系人共享消息。但是,如果您不关心有根设备,那么您可以按照以下步骤操作,

      protected void whatsAppSendMessage(String[] paramArrayOfString, String paramString) {
        try {
         Shell shell = Shell.startRootShell();
         int j = paramArrayOfString.length;
         for (int i = 0; i < j; i++) {
          String str3;
          long l1;
          long l2;
          int k;
          String str1;
          String str2;
          Random localRandom = new Random(20L);
      
          Log.d("AUTO",
            "ps | grep -w 'com.whatsapp' | awk '{print $2}' | xargs kill");
          commandsTestOnClick("ps | grep -w 'com.whatsapp' | awk '{print $2}' | xargs kill");
      
          str3 = paramArrayOfString[i] + "@s.whatsapp.net";
          l1 = System.currentTimeMillis();
          l2 = l1 / 1000L;
          k = localRandom.nextInt();
      
          str1 = "sqlite3 /data/data/com.whatsapp/databases/msgstore.db \"INSERT INTO messages (key_remote_jid, key_from_me, key_id, status, needs_push, data, timestamp, MEDIA_URL, media_mime_type, media_wa_type, MEDIA_SIZE, media_name , latitude, longitude, thumb_image, remote_resource, received_timestamp, send_timestamp, receipt_server_timestamp, receipt_device_timestamp, raw_data, media_hash, recipient_count, media_duration, origin)VALUES ('"
            + str3
            + "', 1,'"
            + l2
            + "-"
            + k
            + "', 0,0, '"
            + paramString
            + "',"
            + l1
            + ",'','', '0', 0,'', 0.0,0.0,'','',"
            + l1
            + ", -1, -1, -1,0 ,'',0,0,0); \"";
      
          str2 = "sqlite3 /data/data/com.whatsapp/databases/msgstore.db \"insert into chat_list (key_remote_jid) select '"
            + str3
            + "' where not exists (select 1 from chat_list where key_remote_jid='"
            + str3 + "');\"";
      
          str3 = "sqlite3 /data/data/com.whatsapp/databases/msgstore.db \"update chat_list set message_table_id = (select max(messages._id) from messages) where chat_list.key_remote_jid='"
            + str3 + "';\"";
      
          Log.d("AUTO", str1);
          Log.d("AUTO", str2);
          Log.d("AUTO", str3);
      
          shell.add(
            new SimpleCommand(
              "chmod 777 /data/data/com.whatsapp/databases/msgstore.db"))
            .waitForFinish();
          shell.add(new SimpleCommand(str1)).waitForFinish();
          shell.add(new SimpleCommand(str2)).waitForFinish();
          shell.add(new SimpleCommand(str3)).waitForFinish();
         }
         shell.close();
        } catch (Exception e) {
         e.printStackTrace();
        }
       } 
      

      经过测试,即使不打开 WhatsApp 也能完美运行!

      原始出处,

      Whatsapp message share without opening whatsapp

      【讨论】:

        猜你喜欢
        • 2016-07-20
        • 2013-10-20
        • 1970-01-01
        • 2020-09-19
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多