【发布时间】:2014-10-01 13:59:28
【问题描述】:
我想通过我的应用程序中的 whatsapp 发送短信。
当我通过 whatsapp 发送共享请求时,我不知道收件人是谁,我被定向到联系人页面。
我如何知道选择了哪个联系人?
这是我用来分享的代码:
public void clickHandler(View view) {
PackageManager pm=getPackageManager();
try {
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
String text = "YOUR TEXT HERE";
PackageInfo info=pm.getPackageInfo("com.whatsapp",PackageManager.GET_META_DATA);
//Check if package exists or not. If not then code
//in catch block will be called
waIntent.setPackage("com.whatsapp");
waIntent.putExtra(Intent.EXTRA_TEXT, text);
startActivityForResult(Intent.createChooser(waIntent, "Share with"),1);
} catch (NameNotFoundException e) {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("whatsapp","requestCode:"+requestCode + " resultCode:"+resultCode+ " intent:"+data);
}
10-01 16:57:46.910: D/whatsapp(13522): requestCode:1 resultCode:0 intent:null
【问题讨论】:
-
您为什么想知道选择了哪个联系人?该应用程序会自动将消息发送给该联系人,我猜这就是您想要的。
-
我想通过whatsapp与另一个用户分享一条信息,这个用户可能不是我的应用程序用户,如果是这种情况,我想当这个用户注册我的应用程序时,能够给他已经分享的内容。为此,我需要标记此用户
-
如果你的 onActivityResult 没有触发,那么就没有办法检索它,因为 WhatsApp 没有为此编码。
-
Whatsapp 没有提及任何关于将消息发送给in their docs 的信息,所以我想他们没有。另外,想想如果他们这样做的后果:你会在哪里划清界限?只是联系人的名字还可以吗?他们的联系电话呢?电子邮件?等等。每个人都会对此有不同的看法,因此如果 Whatsapp 会像这样将任何数据暴露给“外人”(阅读:其他调用 Whatsapp 应用程序的应用程序),我会感到惊讶。