package com.swjtu.gcmformojo; import android.content.Context; import android.util.Log; import com.xiaomi.mipush.sdk.ErrorCode; import com.xiaomi.mipush.sdk.MiPushClient; import com.xiaomi.mipush.sdk.MiPushCommandMessage; import com.xiaomi.mipush.sdk.MiPushMessage; import com.xiaomi.mipush.sdk.PushMessageReceiver; import org.json.JSONException; import org.json.JSONObject; import java.util.List; import static com.swjtu.gcmformojo.MyApplication.MYTAG; import static com.swjtu.gcmformojo.MyApplication.deviceMiToken; import static com.swjtu.gcmformojo.MyApplication.mySettings; /** * Created by HeiPi on 2017/3/14. */ public class MiPushReceiver extends PushMessageReceiver { @Override public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) { Log.v(MYTAG, "onReceiveRegisterResult is called. " + message.toString()); String command = message.getCommand(); List<String> arguments = message.getCommandArguments(); String cmdArg1 = ((arguments != null && arguments.size() > 0) ? arguments.get(0) : null); String log; if (MiPushClient.COMMAND_REGISTER.equals(command)) { if (message.getResultCode() == ErrorCode.SUCCESS) { deviceMiToken = cmdArg1; Log.v(MYTAG, "小米推送token:" + deviceMiToken); } else { Log.v(MYTAG, "小米推送注册失败!" ); } } else { log = message.getReason(); } } @Override public void onReceivePassThroughMessage(Context context, MiPushMessage message) { String remoteMessageOrign = message.toString(); // Log.d(MYTAG, remoteMessageOrign); try { JSONObject remoteMessage = new JSONObject(message.getContent()); if(!remoteMessage.has("isAt")) remoteMessage.put("isAt","0"); if(!remoteMessage.has("senderType")) remoteMessage.put("senderType","1"); //SharedPreferences Settings = context.getSharedPreferences(PREF, Context.MODE_PRIVATE); String tokenSender = mySettings.getString("push_type","GCM"); if(tokenSender.equals("MiPush")) { Log.d(MYTAG, "小米推送:"+remoteMessageOrign); MessageUtil.MessageUtilDo(context,remoteMessage.getString("msgId"),remoteMessage.getString("type"),remoteMessage.getString("senderType"),remoteMessage.getString("title"),remoteMessage.getString("message"),remoteMessage.getString("isAt")); } } catch (JSONException e) { e.printStackTrace(); } } }