在这里不得不吐槽一下国产的强大,丰富的手机,丰富的系统,丰富的app,以及丰富的问题。不过吐槽归吐槽,还是要解决问题。
我得问题是 在oppo r9手机上,改手机系统版本为5.1系统,在微信支付成功以后,死活都不能接收到回调消息。
我们在这里是EventBus传递的消息,但是其他手机都可以,oppo r9的却不行
查找了oppo论坛,和联系了oppo客服,当初为了安全性考虑,不允许三方接受一些回调和三方消息,后来的系统修复解决了这个问。这就贴代码吧:
@Override protected void onResume() { super.onResume(); if (android.os.Build.MODEL.equals("OPPO R9tm") && android.os.Build.VERSION.RELEASE.equals("5.1") && GlobalParameter.WXPAYCODE.equals("0") && GlobalParameter.WXYUANSHENGPEI.equals("1")) { GlobalParameter.WXPAYCODE = ""; GlobalParameter.WXYUANSHENGPEI = "0"; Log.e("支付成功", "onResume"); Intent intent = new Intent(PayForPeilianActivity.this, PayScceedActivity.class); intent.putExtra("orderid", orderid); startActivity(intent); finish(); } }
@Override public void onResp(BaseResp resp) { Log.e("支付成功","resp.errCode"); Log.e("支付成功resp.errCode",resp.errCode+""); GlobalParameter.WXPAYCODE=resp.errCode+""; EventBus.getDefault().post(String.valueOf(resp.errCode)); finish(); }定义一个全局变量,把支付的结果code码赋值给他,然后在onResume方法中进行判断,只有当是oppo r9 手机,并且系统是5.1版本才执行该方法。