Android跳转微信朋友圈与聊天界面
2014-12-28 17:58
357 查看
早就想写这个功能了,最近忙一直没时间,今天有空写点关于Android程序跳转至指定的微信好友界面和朋友圈界面
如果微信同步手机通讯后可以进入指定微信好友会话界面和朋友圈界面
程序逻辑点:
通讯录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 final static String WEIXIN_CHATTING_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.profile";//微信聊天
public final static String WEIXIN_SNS_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.plugin.sns.timeline";//微信朋友圈
public final static String WEIXIN_VIDIO_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.voip.video";//微信视频 public final static String WEIXIN_CHATTING_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.profile";//微信聊天
public final static String WEIXIN_SNS_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.plugin.sns.timeline";//微信朋友圈
public final static String WEIXIN_VIDIO_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.voip.video";//微信视频
/**
* 进去聊天界面
* @param context
* @param id 手机通讯录中版本的微信的自动增长列(下面有一个方法或告诉大家如何获取)
*/
public static void shareToFriend(Context context,int id) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(id)),
WEIXIN_CHATTING_MIMETYPE);
context.startActivity(intent);
}
/**
* 朋友圈
* @param context
* @param id
*/
public static void shareToTimeLine(Context context,int id) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(id)),
WEIXIN_SNS_MIMETYPE);
context.startActivity(intent);
}
/** 根据电话号码查询微信id **/
public static int getChattingID(Context context, String querymobile, String mimeType) {
if(context == null || querymobile == null || querymobile.equals("") ){
return 0;
}
ContentResolver resolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.android.contacts/data");
StringBuilder sb = new StringBuilder();
sb.append(Data.MIMETYPE).append(" = ").append("'");
sb.append(mimeType).append("'");
sb.append(" AND ").append("replace(data1,' ','')").append(" = ").append("'").append(ToolClass.getPhone(querymobile)).append("'");
Cursor cursor = resolver.query(uri, new String[] {Data._ID}, sb.toString(), null, null);
while (cursor.moveToNext()) {
int wexin_id = cursor.getInt(cursor.getColumnIndex(Data._ID));
return wexin_id;
}
cursor.close();
return 0;
}
如果大家还有什么疑问可以直接给我留言
早就想写这个功能了,最近忙一直没时间,今天有空写点关于Android程序跳转至指定的微信好友界面和朋友圈界面
如果微信同步手机通讯后可以进入指定微信好友会话界面和朋友圈界面
程序逻辑点:
通讯录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 final static String WEIXIN_CHATTING_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.profile";//微信聊天
public final static String WEIXIN_SNS_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.plugin.sns.timeline";//微信朋友圈
public final static String WEIXIN_VIDIO_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.voip.video";//微信视频 public final static String WEIXIN_CHATTING_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.profile";//微信聊天
public final static String WEIXIN_SNS_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.plugin.sns.timeline";//微信朋友圈
public final static String WEIXIN_VIDIO_MIMETYPE = "vnd.android.cursor.item/vnd.com.tencent.mm.chatting.voip.video";//微信视频
/**
* 进去聊天界面
* @param context
* @param id 手机通讯录中版本的微信的自动增长列(下面有一个方法或告诉大家如何获取)
*/
public static void shareToFriend(Context context,int id) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(id)),
WEIXIN_CHATTING_MIMETYPE);
context.startActivity(intent);
}
/**
* 朋友圈
* @param context
* @param id
*/
public static void shareToTimeLine(Context context,int id) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.withAppendedPath(
ContactsContract.Data.CONTENT_URI, String.valueOf(id)),
WEIXIN_SNS_MIMETYPE);
context.startActivity(intent);
}
/** 根据电话号码查询微信id **/
public static int getChattingID(Context context, String querymobile, String mimeType) {
if(context == null || querymobile == null || querymobile.equals("") ){
return 0;
}
ContentResolver resolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.android.contacts/data");
StringBuilder sb = new StringBuilder();
sb.append(Data.MIMETYPE).append(" = ").append("'");
sb.append(mimeType).append("'");
sb.append(" AND ").append("replace(data1,' ','')").append(" = ").append("'").append(ToolClass.getPhone(querymobile)).append("'");
Cursor cursor = resolver.query(uri, new String[] {Data._ID}, sb.toString(), null, null);
while (cursor.moveToNext()) {
int wexin_id = cursor.getInt(cursor.getColumnIndex(Data._ID));
return wexin_id;
}
cursor.close();
return 0;
}
如果大家还有什么疑问可以直接给我留言
相关文章推荐
- Android 根据QQ号跳转到QQ聊天界面
- Android - Intent - 界面跳转
- android中跳转到系统管理应用程序界面的方法
- Android之高仿微信聊天的界面
- android 界面跳转
- android 实现微信聊天界面效果
- android中程序更新下载完成后自动跳转安装界面
- Android实现界面跳转
- android 如何能使界面跳转到系统网络设置界面
- Android界面跳转的内存分析
- Android界面跳转时候onDestroy和onResume的调用顺序
- Android编程(2)android界面之间跳转并传递数据,调出短信发送界面
- Android应用界面动画切换(主要Tabhost中跳转出来的动画效果解决[转]
- (转)android中 检查网络连接状态的变化,无网络时跳转到设置界面
- Android之高仿微信聊天的界面
- Android泡泡聊天界面的实现
- android中 检查 网络连接状态的变化,无网络时跳转到设置界面
- android 跨应用跳转 启动其他应用指定界面
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- android 界面之间跳转步骤