【模仿】调用微信聊天功能和分享功能

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

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

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


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

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

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

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

public static final String APP_ID = "wx----------------";

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

IWXAPI api = WXAPIFactory.createWXAPI(context, APP_ID);//获取iWXAPI的实现,需要你自己的 APP_ID
		api.registerApp(APP_ID);//注册自己的应用id


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

		WXTextObject textobj = new WXTextObject(" ");//必须有长度,为0不可以,代表分享的文本
		WXMediaMessage message = new WXMediaMessage();//传送 request里面的对象,用来包装 真实的数据
		message.description = textmsg;
		message.title = textmsg;
		message.mediaObject = textobj;//赋值为刚才的文本对象
		SendMessageToWX.Req request = new SendMessageToWX.Req();//分享给wx的类
		request.transaction = textmsg;//代表一次会话的唯一id
		request.scene = SendMessageToWX.Req.WXSceneSession;//代表场景, sdk文档有写 timeline 是朋友圈, session是会话
		request.message = message;
		boolean flag = api.sendReq(request);
		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就可以了调用代码:

Intent intent = new Intent(Intent.ACTION_VIEW);
		SimplePhone sp = (SimplePhone) mAdpater.getItem(position);
		intent.setDataAndType(Uri.withAppendedPath(ContactsContract.Data.CONTENT_URI, String.valueOf(sp.dataid)), WX_MIMETYPE);
		startActivity(intent);
这样就完成了到达微信界面,和指定的号码聊天

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值