您的位置:首页 > 移动开发 > 微信开发

Android应用加入微信分享功能

2015-07-22 15:11 751 查看


这是我从博客园的一个叫安卓吧那里找到一篇文章,这里注明出处,也尊重原创:http://www.cnblogs.com/android100/p/Android-qq.html

至于为什么的已经有了我还拿出来说,一方面是自己做一些记录,另一方面是说明明我遇到的一些问题及解决。


一、申请你的AppID

http://open.weixin.qq.com/

  友情提示:推荐使用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" />  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息