Android跳转微信朋友圈与聊天界面



早就想写这个功能了,最近忙一直没时间,今天有空写点关于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;
 }


如果大家还有什么疑问可以直接给我留言






  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值