在玩了很长一段时间之后,我意识到我们可以启动Whatsapp的联系人选择器活动并返回结果,但不会返回到返回的uri(Android联系人选择器的方式),而是作为额外的。 我想出了以下解决方案。
要启动的WhatsApp的本地联系人挑选我们所说的从我们的活动如下代码:
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setPackage("com.whatsapp");
try{
startActivityForResult(intent, REQUEST_CODE_PICK_WHATSAPP);
} catch (Exception e) {
Toast.makeText(MainActivity.this, R.string.notif_no_whatsapp, Toast.LENGTH_SHORT).show(); //no activity found to handle this intent means whatsapp is not installed
}
然后,内部活动的onActivityResult(...)方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
switch (requestCode) {
case REQUEST_CODE_PICK_WHATSAPP:
if(resultCode == RESULT_OK){
if(intent.hasExtra("contact")){
String address = intent.getStringExtra("contact");
Log.d(TAG, "The selected Whatsapp address is: "+address);
}
}
break;
default:
break;
}
}
希望它有助于使更多的应用程序与WhatsApp无缝集成。
你知道如何分享内容并找回地址吗? –
我不明白这个问题。你能更具体地描述你想做什么吗? –
无所谓,我试图通过Action.sendto发送消息并检索选定用户的ID,但已解决。 –