public virtual void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { int sequence = jPushMessage.Sequence; Logger.i(TAG, "action - onAliasOperatorResult, sequence:" + sequence + ",alias:" + jPushMessage.Alias); init(context); //根据sequence从之前操作缓存中获取缓存记录 TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.Get(sequence); if (tagAliasBean == null) { ExampleUtil.showToast("获取缓存记录失败", context); return; } if (jPushMessage.ErrorCode == 0) { Logger.i(TAG, "action - modify alias Success,sequence:" + sequence); setActionCache.Remove(sequence); string logs = getActionStr(tagAliasBean.action) + " alias success"; Logger.i(TAG, logs); ExampleUtil.showToast(logs, context); } else { string logs = "Failed to " + getActionStr(tagAliasBean.action) + " alias, errorCode:" + jPushMessage.ErrorCode; Logger.e(TAG, logs); if (!RetryActionIfNeeded(jPushMessage.ErrorCode, tagAliasBean)) { ExampleUtil.showToast(logs, context); } } }
//设置手机号码回调 public virtual void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) { int sequence = jPushMessage.Sequence; Logger.i(TAG, "action - onMobileNumberOperatorResult, sequence:" + sequence + ",mobileNumber:" + jPushMessage.MobileNumber); init(context); if (jPushMessage.ErrorCode == 0) { Logger.i(TAG, "action - set mobile number Success,sequence:" + sequence); setActionCache.Remove(sequence); } else { string logs = "Failed to set mobile number, errorCode:" + jPushMessage.ErrorCode; Logger.e(TAG, logs); if (!RetrySetMObileNumberActionIfNeeded(jPushMessage.ErrorCode, jPushMessage.MobileNumber)) { ExampleUtil.showToast(logs, context); } } }
private bool RetrySetMObileNumberActionIfNeeded(int errorCode, string mobileNumber) { if (!ExampleUtil.isConnected(context)) { Logger.w(TAG, "no network"); return(false); } //返回的错误码为6002 超时,6024 服务器内部错误,建议稍后重试 if (errorCode == 6002 || errorCode == 6024) { Logger.d(TAG, "need retry"); Message message = new Message(); message.What = DELAY_SET_MOBILE_NUMBER_ACTION; message.Obj = mobileNumber; delaySendHandler.SendMessageDelayed(message, 1000 * 60); string str = "Failed to set mobile number due to %s. Try again after 60s."; str = Java.Lang.String.Format(Locale.English, str, (errorCode == 6002 ? "timeout" : "server internal error”")); ExampleUtil.showToast(str, context); return(true); } return(false); }
public virtual void onTagOperatorResult(Context context, JPushMessage jPushMessage) { int sequence = jPushMessage.Sequence; Logger.i(TAG, "action - onTagOperatorResult, sequence:" + sequence + ",tags:" + jPushMessage.Tags); Logger.i(TAG, "tags size:" + jPushMessage.Tags.Count); init(context); //根据sequence从之前操作缓存中获取缓存记录 TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.Get(sequence); if (tagAliasBean == null) { ExampleUtil.showToast("获取缓存记录失败", context); return; } if (jPushMessage.ErrorCode == 0) { Logger.i(TAG, "action - modify tag Success,sequence:" + sequence); setActionCache.Remove(sequence); string logs = getActionStr(tagAliasBean.action) + " tags success"; Logger.i(TAG, logs); ExampleUtil.showToast(logs, context); } else { string logs = "Failed to " + getActionStr(tagAliasBean.action) + " tags"; if (jPushMessage.ErrorCode == 6018) { //tag数量超过限制,需要先清除一部分再add logs += ", tags is exceed limit need to clean"; } logs += ", errorCode:" + jPushMessage.ErrorCode; Logger.e(TAG, logs); if (!RetryActionIfNeeded(jPushMessage.ErrorCode, tagAliasBean)) { ExampleUtil.showToast(logs, context); } } }
private bool RetryActionIfNeeded(int errorCode, TagAliasBean tagAliasBean) { if (!ExampleUtil.isConnected(context)) { Logger.w(TAG, "no network"); return(false); } //返回的错误码为6002 超时,6014 服务器繁忙,都建议延迟重试 if (errorCode == 6002 || errorCode == 6014) { Logger.d(TAG, "need retry"); if (tagAliasBean != null) { Message message = new Message(); message.What = DELAY_SEND_ACTION; message.Obj = tagAliasBean; delaySendHandler.SendMessageDelayed(message, 1000 * 60); string logs = getRetryStr(tagAliasBean.isAliasAction, tagAliasBean.action, errorCode); ExampleUtil.showToast(logs, context); return(true); } } return(false); }