微信登陆以及分享 请求跟返回值的接收 我这边登陆.分享的状态都是发送广播出去,然后结束当前的Activity.
/**
* 微信登陆分享回调Activity
* @author ansen
* @create time 2015-05-25
*/
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
private IWXAPI wxAPI;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(MLog.debug)
System.out.println("WXEntryActivity onCreate");
wxAPI = WXAPIFactory.createWXAPI(this,WeiXinPresenter.APP_ID,true);
wxAPI.registerApp(WeiXinPresenter.APP_ID);
wxAPI.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent){
super.onNewIntent(intent);
wxAPI.handleIntent(getIntent(),this);
if(MLog.debug)
System.out.println("WXEntryActivity onNewIntent");
}
@Override
public void onReq(BaseReq arg0) {
if(MLog.debug)
System.out.println("WXEntryActivity onReq:"+arg0);
if(MLog.debug)
Toast.makeText(this, "onReq 方法运行", 0).show();
}
@Override
public void onResp(BaseResp resp){
MLog.d("ansen", "onResp.....");
if(MLog.debug)
Toast.makeText(this,"onResp 方法运行", 0).show();
if(resp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){//分享
switch (resp.errCode){
case BaseResp.ErrCode.ERR_OK:
if(MLog.debug)
Toast.makeText(WXEntryActivity.this, "分享成功!", Toast.LENGTH_SHORT).show();
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
// Toast.makeText(WXEntryActivity.this, "分享取消!", Toast.LENGTH_SHORT).show();
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
break;
}
Intent intent = new Intent();
intent.setAction(APIDefineConst.BROADCAST_ACTION_WEIXIN_SHARE);
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
lbm.sendBroadcast(intent);
}else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登陆发送广播
SendAuth.Resp authResp = (Resp) resp;
String code = authResp.code;
Intent intent = new Intent();
intent.setAction(APIDefineConst.BROADCAST_ACTION_WEIXIN_TOKEN);
intent.putExtra("errCode", authResp.errCode);
if (authResp.errCode == BaseResp.ErrCode.ERR_OK){//用户同意
intent.putExtra("code", code);
}
if(MLog.debug)
Toast.makeText(this, "WXEntryActivity 发送登陆广播!!!!", 0).show();
if (android.os.Build.VERSION.SDK_INT >= 12) {
intent.setFlags(32);//3.1以后的版本需要设置Intent.FLAG_INCLUDE_STOPPED_PACKAGES
}
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
lbm.sendBroadcast(intent);
}
finish();
}
}










