2013.7.26 微信android sdk

1,

interface IWXAPI:微信OpenAPI访问入口,由Class WXAPIFactory实例化

实例化:createWXAPI(Context context, java.lang.String appId) ;
createWXAPI(Context context, java.lang.String appId, boolean checkSignature);

IWXAPI 提供的方法有:获取当前安装的微信的api level,是否安装了微信,启动微信,注册3rd app到微信,以及反注册等。最重要的两个方法是:sendReq(BaseReq req) 和 sendResp(BaseResp resp) 


2,sendReq(BaseReq req) 和 sendResp(BaseResp resp) 

sendReq(BaseReq req):3rd app 发送请求到微信

2013.7.26 微信android sdk_第1张图片



sendResp(BaseResp resp) 微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。

微信界面“+”在onReq()中对应的  req.getType()  ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:

2013.7.26 微信android sdk_第2张图片

				Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
				WXImageObject imgObj = new WXImageObject(bmp);

				WXMediaMessage msg = new WXMediaMessage();
				msg.mediaObject = imgObj;

				// 设置消息的缩略图
				Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
				bmp.recycle();
				msg.thumbData = Util.bmpToByteArray(thumbBmp, true);

				GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
				resp.transaction = getTransaction();
				resp.message = msg;
				
				api.sendResp(resp);

3.

Interface IWXAPIEventHandler 是微信向3rd app请求和3rd app向微信请求后微信给于反馈的接口。onReq()用于微信请求,onResp()用于反馈。可以用一个BroadcastReceiver实现这个接口。也可以在WXEnterActivity中用代码注册,只需api.handleIntent(getIntent(), this);WXEnterActivity 实现 IWXAPIEventHandler 。

4, BaseReq:请求的基类

已实现的子类:GetMessageFromWX.Req, SendAuth.Req, SendMessageToWX.Req, ShowMessageFromWX.Req

BaseResp:响应的基类
已实现的子类:GetMessageFromWX.Resp, SendAuth.Resp, SendMessageToWX.Resp, ShowMessageFromWX.Resp


5,请求或者响应时可能会带 WXMediaMessage,一个 WXMediaMessage 可以携带一个 WXMediaMessage.IMediaObject ,具体的WXMediaMessage.IMediaObject 有:
WXAppExtendObject, WXEmojiObject, WXFileObject, WXImageObject, WXMusicObject, WXTextObject, WXVideoObject, WXWebpageObject


---------------------------------------------------------------------------------------------------------
1,WXEntryActivity 在清单文件中注册时 android:exported 属性未配置,导致无法从微信+号处调用3rd应用,ActivityManager 报的异常的 permission deny 。android:exported 默认 false,即不允许被其他程序调用。所以。设置成true ,ok

你可能感兴趣的:(2013.7.26 微信android sdk)