如何将消息发送给Whatsapp联系人

如题所述

从中发现如果想要发送文字信息给Whatsapp进行Whatsapp内消息的发送,可以利用的intent中两个缺省的字段Intent.EXTRA_TEXT和Intent.EXTRA_SUBJECT,于是就按照“android.intent.action.SEND”这个Intent Filter做下如下的代码尝试。
public static boolean sendWhatsApp(Context ctx, String text){
boolean sendOk = false;
if(checkApkExist(ctx, "com.whatsapp")){
Intent vIt = new Intent("android.intent.action.SEND");
vIt.setPackage("com.whatsapp");
vIt.setType("text/plain");
if(!Util.IsNullOrEmpty(text)){
vIt.putExtra(Intent.EXTRA_TEXT, "This is a simple test");
vIt.putExtra(Intent.EXTRA_SUBJECT, "Subject");
}
ctx.startActivity(vIt);
sendOk = true;
}
return sendOk;
}

private static boolean checkApkExist(Context ctx, String packageName) {
if (packageName == null || "".equals(packageName))
return false;
try {
ApplicationInfo info = ctx.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
if(info != null){
return true;
}else{
return false;
}
}catch (NameNotFoundException e){
return false;
}
}
上述的checkApkExist方法是用于判断当前是否有安装相应包程序的,发送效果如下:

假如上述代码中,去除vIt.setPackage("com.whatsapp");这段代码之后,就会出现一个选择框的效果,这个就和很多程序中做分享的效果一致了,下面选择环聊做了简单测试。

假如要发图片的话也可以通过分享Deja头像的方式,来实现,下面将代码简单整理了下,就先省略了具体的判断代码:
public static void shareImageToWhatsapp(Activity ctx, Bitmap shareBitmap, String subject, String text) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setPackage("com.whatsapp");
intent.setType("image/*");
Uri imageUri = Uri.parse(MediaStore.Images.Media.insertImage(ctx.getContentResolver(), shareBitmap, null, null));
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
ctx.startActivity(Intent.createChooser(intent, ctx.getTitle()));
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-20

你说的应该是使用这个app吧,建议参考一下这个文档资料,应该可以解决你的顾虑