如何通过编程实现WhatsApp消息自动发送(无需手动点击发送)
实现WhatsApp消息自动发送(无需手动点击发送)
嘿,我明白你现在的需求——想让代码自动完成WhatsApp消息发送,不用手动点发送按钮对吧?你提到的通过设置开启“按Enter键发送”是一个可行的方案,不过咱们也可以结合代码来更顺畅地实现这个需求,我来一步步给你拆解:
方法一:通过WhatsApp设置开启自动发送触发
你提到的这个方法很直接,步骤再明确下:
- 打开WhatsApp,点击右上角的菜单按钮(三个点)
- 进入设置 > 聊天
- 找到并勾选按Enter键发送选项
开启这个设置后,只要在代码里模拟按下Enter键,就能自动触发消息发送了。
方法二:优化代码实现自动发送
你当前的代码只是唤起了WhatsApp的发送界面,咱们可以调整一下,结合模拟按键操作来完成自动发送:
先贴出你提供的基础代码(补全了常见的Intent设置):
protected void sendwts(){ String smsNumber = "2126123456789"; // E164格式,不含'+'号 Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setType("text/plain"); sendIntent.putExtra(Intent.EXTRA_TEXT, "你要发送的消息内容"); sendIntent.setPackage("com.whatsapp"); // 指定打开WhatsApp,避免弹出选择器 startActivity(sendIntent); }
接下来,咱们在启动WhatsApp界面后,延迟一段时间确保界面加载完成,然后模拟按下Enter键来触发发送:
protected void sendwts(){ String smsNumber = "2126123456789"; Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setType("text/plain"); sendIntent.putExtra(Intent.EXTRA_TEXT, "测试自动发送的消息"); sendIntent.setPackage("com.whatsapp"); startActivity(sendIntent); // 延迟1秒确保界面加载完成,时间可以根据设备性能调整 new Handler(Looper.getMainLooper()).postDelayed(() -> { Instrumentation instrumentation = new Instrumentation(); instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_ENTER); }, 1000); }
注意事项
- 记得在
AndroidManifest.xml中添加所需权限:<uses-permission android:name="android.permission.INJECT_EVENTS" />,不过这个权限在Android 10及以上系统中,可能需要系统签名或者特殊授权才能正常使用 - 如果是高版本Android系统,后台模拟按键会有较多限制,这时候你提到的设置“按Enter键发送”就显得尤为重要,两者结合才能稳定生效
- 如果是商业场景需要完全无界面的自动发送,可以考虑使用WhatsApp Business API,但这个需要官方认证,门槛相对较高
内容的提问来源于stack exchange,提问作者Nizar
相关产品推荐
相关产品推荐

