Android Studio实现直接向指定WhatsApp号码发送视频的方法
直接通过WhatsApp向指定号码发送相册视频的解决方案
实现原理
WhatsApp支持通过特定的Intent Uri直接指定目标号码,跳过手动选择联系人的步骤。核心是构造包含目标号码的ACTION_SENDTO Intent,同时传入视频文件Uri。
修改后的代码实现
替换你现有onActivityResult方法中的分享逻辑,代码如下:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK && requestCode == REQUEST_TAKE_GALLERY_VIDEO) { Uri videoUri = data.getData(); // 替换为带国家代码的目标号码,比如中国号码格式为+86XXXXXX String targetPhoneNumber = "+868721XXXXXX"; // 构建WhatsApp发送地址Uri Uri whatsappSendUri = Uri.parse("https://api.whatsapp.com/send?phone=" + targetPhoneNumber); Intent shareIntent = new Intent(Intent.ACTION_SENDTO, whatsappSendUri); // 若使用普通WhatsApp,将包名改为"com.whatsapp" shareIntent.setPackage("com.whatsapp.w4b"); shareIntent.putExtra(Intent.EXTRA_STREAM, videoUri); shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello"); shareIntent.setType("video/*"); // 检查设备是否安装了对应版本的WhatsApp if (shareIntent.resolveActivity(getPackageManager()) != null) { startActivity(shareIntent); } else { Toast.makeText(this, "未安装目标WhatsApp应用", Toast.LENGTH_SHORT).show(); } } }
关键注意事项
- 号码格式要求:必须添加完整的国家代码前缀(如中国
+86、美国+1),仅本地号码无法被WhatsApp识别。 - 包名区分:如果使用普通版WhatsApp,将
com.whatsapp.w4b替换为com.whatsapp。 - 权限与兼容性:Android 10及以下需申请
READ_EXTERNAL_STORAGE权限;Android 11+无需额外权限,但需确保视频Uri可被WhatsApp访问。 - 文件大小限制:WhatsApp对发送视频有大小限制(通常为16MB左右),超出限制的视频无法直接发送。
内容的提问来源于stack exchange,提问作者Bhaskar Jyoti Dutta
相关产品推荐
相关产品推荐

