这是我从博客园的一个叫安卓吧那里找到一篇文章,这里注明出处,也尊重原创:http://www.cnblogs.com/android100/p/Android-qq.html
至于为什么的已经有了我还拿出来说,一方面是自己做一些记录,另一方面是说明明我遇到的一些问题及解决。
一、申请你的AppID
友情提示:推荐使用eclipse打包软件最后一步的MD5值去申请AppID
(我刚开始没看明白这句话,这里的MD5分两种,一种是debug下的MD5,可以通过Windows->preference->Android->Build查看,如图:
还有一种是自己打包导出项目时创建或使用的keystone的最后一步也就那个友情提示说的MD5,如图:
通过微信官网提供的获取的应用签名的apk获取就是MD5,然后把应用签名(也就是MD5)填到微信开放平台上注册所使用的应用签名,如图:
已经注册过的应用可以修改应用签名和包名。
)
二、官网下载libammsdk.jar包
http://open.weixin.qq.com/download/?lang=zh_CN
三、将libammsdk.jar复制到工程的libs目录
四、在需要分享的Activity编写代码
- private IWXAPI wxApi;
- //实例化
- wxApi = WXAPIFactory.createWXAPI(this, Constants.WX_APP_ID);
- wxApi.registerApp(Constants.WX_APP_ID);
- /**
- * 微信分享 (这里仅提供一个分享网页的示例,其它请参看官网示例代码)
- * @param flag(0:分享到微信好友,1:分享到微信朋友圈)
- */
- private void wechatShare(int flag){
- WXWebpageObject webpage = new WXWebpageObject();
- webpage.webpageUrl = "这里填写链接url";
- WXMediaMessage msg = new WXMediaMessage(webpage);
- msg.title = "这里填写标题";
- msg.description = "这里填写内容";
- //这里替换一张自己工程里的图片资源
- Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.share_logo);
- msg.setThumbImage(thumb);
- SendMessageToWX.Req req = new SendMessageToWX.Req();
- req.transaction = String.valueOf(System.currentTimeMillis());
- req.message = msg;
- req.scene = flag==0?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneTimeline;
- wxApi.sendReq(req);
- }
- //在需要分享的地方添加代码:
- wechatShare(0);//分享到微信好友
- wechatShare(1);//分享到微信朋友圈
五、在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity,实现IWXAPIEventHandler接口
- /** 微信客户端回调activity示例 */
- public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
- // IWXAPI 是第三方app和微信通信的openapi接口
- private IWXAPI api;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- api = WXAPIFactory.createWXAPI(this, "这里替换第一步申请的APP_ID", false);
- api.handleIntent(getIntent(), this);
- super.onCreate(savedInstanceState);
- }
- @Override
- public void onReq(BaseReq arg0) { }
- @Override
- public void onResp(BaseResp resp) {
- LogManager.show(TAG, "resp.errCode:" + resp.errCode + ",resp.errStr:"
- + resp.errStr, 1);
- switch (resp.errCode) {
- case BaseResp.ErrCode.ERR_OK:
- //分享成功
- break;
- case BaseResp.ErrCode.ERR_USER_CANCEL:
- //分享取消
- break;
- case BaseResp.ErrCode.ERR_AUTH_DENIED:
- //分享拒绝
- break;
- }
- }
- }
六、配置清单文件AndroidManifest.xml
- <activity
- android:name=".wxapi.WXEntryActivity"
- android:exported="true"
- android:screenOrientation="portrait"
- android:theme="@android:style/Theme.Translucent.NoTitleBar" />