调用微信聊天功能和分享功能

本文介绍如何利用微信SDK实现应用内的分享功能,并通过调用特定Intent实现直接跳转到微信聊天界面的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天整理个不是问题的问题,没学到啥,主要完成功能:

老大要求能调用手机号码然后通过微信聊,

我去,说白了老大看到了应用-通讯录plus-的微信功能,要我模仿。


首先,坑啊,我以为是开放的功能,就去看了半天微信的开发分享功能,记录下分享功能的使用:

1.去下载微信开放平台的包: 微信提供了 开发的工具包sdk ,里面有个 libammsdk.jar.将它导入工程

2.去微信开放平台申请你的 APP_ID ,做过其他开放平台的都应该知道这玩意。

3.在工程建立静态变量APP_ID:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <span style="font-family:Comic Sans MS;font-size:18px;">public static final String APP_ID = "wx----------------";</span>  

4.主要使用IWXAPI 接口,它提供了注册应用,交互的基本功能方法:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. IWXAPI api = WXAPIFactory.createWXAPI(context, APP_ID);//获取iWXAPI的实现,需要你自己的 APP_ID  
  2.         api.registerApp(APP_ID);//注册自己的应用id  


5.进行简单文本信息的分享传送:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. WXTextObject textobj = new WXTextObject(" ");//必须有长度,为0不可以,代表分享的文本  
  2. WXMediaMessage message = new WXMediaMessage();//传送 request里面的对象,用来包装 真实的数据  
  3. message.description = textmsg;  
  4. message.title = textmsg;  
  5. message.mediaObject = textobj;//赋值为刚才的文本对象  
  6. SendMessageToWX.Req request = new SendMessageToWX.Req();//分享给wx的类  
  7. request.transaction = textmsg;//代表一次会话的唯一id  
  8. request.scene = SendMessageToWX.Req.WXSceneSession;//代表场景, sdk文档有写 timeline 是朋友圈, session是会话  
  9. request.message = message;  
  10. boolean flag = api.sendReq(request);  
  11. System.out.println("do send... weixin to "+textmsg+" : "+flag);  


这样就完成了分享,微信提供的sdk使用demo已经非常详细了

其次是调用微信:

我使用了下通讯录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.我们只要模仿这个intent就可以了调用代码:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. Intent intent = new Intent(Intent.ACTION_VIEW);  
  2.         SimplePhone sp = (SimplePhone) mAdpater.getItem(position);  
  3.         intent.setDataAndType(Uri.withAppendedPath(ContactsContract.Data.CONTENT_URI, String.valueOf(sp.dataid)), WX_MIMETYPE);  
  4.         startActivity(intent);  
这样就完成了到达微信界面,和指定的号码聊天

最后。这个功能是山寨不是开放的,完全不靠谱,如果type类型变化或者微信关了这个那就完蛋了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值