我想通过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发布于 2014-10-01 14:28:32
您想要实现的是您共享的特定应用程序(在您的情况下是WhatsApp),必须在其应用程序中进行编码,如果它们不实现此功能,您将无法实现它。安卓系统上的每一个startActivityForResult都是如此。如果应用程序没有编码来返回数据,那就意味着你不能拥有这些数据。
要检查是否实现了任何应用程序,最好的方法就是调查它返回的对象的内容。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);在代码中放置一个断点,放在上面的行和调试会话上,检查data参数的内容。检查Bundle中由getExtras()返回的所有键和值,还检查意图操作。
正如你对你的问题所指出的
D/whatsapp(13522):requestCode:1个结果代码:0意图:null
这意味着应用程序不会返回任何数据,您想要的也是不可能的。
https://stackoverflow.com/questions/26143205
复制相似问题