第三方应用,可以调用微信分享,把链接,文字,各种media,分享到微信好友或者微信朋友圈,步骤:
package com.edaixi.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.widget.Toast; import com.edaixi.activity.R; import com.tencent.mm.sdk.constants.ConstantsAPI; import com.tencent.mm.sdk.modelbase.BaseReq; import com.tencent.mm.sdk.modelbase.BaseResp; import com.tencent.mm.sdk.modelmsg.SendAuth; import com.tencent.mm.sdk.modelmsg.SendMessageToWX; import com.tencent.mm.sdk.modelmsg.WXMediaMessage; import com.tencent.mm.sdk.modelmsg.WXWebpageObject; import com.tencent.mm.sdk.openapi.IWXAPI; import com.tencent.mm.sdk.openapi.IWXAPIEventHandler; import com.tencent.mm.sdk.openapi.WXAPIFactory; public class WX_Share implements IWXAPIEventHandler{ private IWXAPI api; private Context context; private int flag;//0 表示分享给微信好友哦,1表示分享到朋友圈 public WX_Share(Context context,int flag) { super(); this.context = context; this.flag = flag; registWX(); } public void registWX() { api = WXAPIFactory.createWXAPI(context, Constants.APP_ID, true); api.registerApp(Constants.APP_ID); } public void share2WX() { if (!api.isWXAppInstalled()) { Toast.makeText(context, "您还未安装微信客户端", Toast.LENGTH_SHORT).show(); return; } WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = "http://www.edaixi.com"; WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = "my test title..."; msg.description = context.getResources().getString(R.string.wx_share_content); Bitmap thumb = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); msg.setThumbImage(thumb); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = String.valueOf(System.currentTimeMillis()); req.message = msg; req.scene = flag; api.sendReq(req); } @Override public void onReq(BaseReq arg0) { } @Override public void onResp(BaseResp resp) { Toast.makeText(context, "openid = " + resp.openId, Toast.LENGTH_SHORT).show(); if (resp.getType() == ConstantsAPI.COMMAND_SENDAUTH) { Toast.makeText(context, "code = " + ((SendAuth.Resp) resp).code, Toast.LENGTH_SHORT).show(); } String result = ""; switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK: result = "-sucessful-"; break; case BaseResp.ErrCode.ERR_USER_CANCEL: result = "-cancle-"; break; case BaseResp.ErrCode.ERR_AUTH_DENIED: result = "-error code-"; break; default: result = "-unknow error-"; break; } Toast.makeText(context, result, Toast.LENGTH_LONG).show(); } }