通讯录plus,它一定要在android账户中添加微信账户以及微信账户必须设置手机绑定为当前手机,
所以是不是联系人数据库中的account_name 和 account_type表明了谁是本机微信好友
所以
1.在添加微信账户后查询account_name,发现有了新的account_name:xxxx(你的微信登入名字)
而account_type = com.tencent.mm.account
2.查询这个account_type所属的号码,这些号码果然是我的微信好友
3.怎么调用,观察通讯录plus的调用intent 我们就知道答案了,包括了数据(由contact.data+dataid)和类型就是下面的type=“vnd.android.cursor.item/vnd.com.tencent.mm.chatting.profile”后面的字符:
4.主要代码:
public class TestActivity extends Activity implements OnClickListener {
String WX_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.profile";
String WX_MIMETYPE_1 = "vnd.android.cursor.item/vnd.com.tencent.mm.plugin.sns.timeline";
String WX_MIMETYPE_2 = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.voip.video";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.getId() == R.id.button1) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(796)),
WX_MIMETYPE);
startActivity(intent);
}
if (v.getId() == R.id.button2) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(798)),
WX_MIMETYPE_1);
startActivity(intent);
}
if (v.getId() == R.id.button3) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(797)),
WX_MIMETYPE_2);
startActivity(intent);
}
}
}
数据库文件
data/data/com.android.provides.contacts/表里的数据: