package cn.koolcloud.ipos.appstore.service; import org.json.JSONObject; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.text.TextUtils; import android.widget.Toast; import cn.koolcloud.ipos.appstore.AppStorePreference; import cn.koolcloud.ipos.appstore.R; import cn.koolcloud.ipos.appstore.api.ApiService; import cn.koolcloud.ipos.appstore.constant.Constants; import cn.koolcloud.ipos.appstore.entity.ResultSet; import cn.koolcloud.ipos.appstore.interfaces.CallBack; import cn.koolcloud.ipos.appstore.utils.JsonUtils; import cn.koolcloud.ipos.appstore.utils.Logger; import cn.koolcloud.ipos.appstore.utils.PushUtils; import cn.koolcloud.ipos.appstore.utils.ToastUtil; import com.baidu.android.pushservice.apiproxy.PushManager; public class RegisterService extends Service { private static final String TAG = "RegisterService"; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { Logger.d("onCreate()"); } @Override public void onStart(Intent intent, int startId) { Logger.d("onStart()"); super.onStart(intent, startId); String terminalId = AppStorePreference.getTerminalID(getApplicationContext()); String userId = AppStorePreference.getUserID(getApplicationContext()); String channelId = AppStorePreference.getChannelId(getApplicationContext()); // if (TextUtils.isEmpty(terminalId)) { registerClient(userId, channelId); // } //login baidu cloud boolean isOpenPush = AppStorePreference.getPushNotificationTag(getApplicationContext()); if (isOpenPush) { PushUtils.logStringCache = PushUtils.getLogText(getApplicationContext()); Logger.d("logStringCache:" + PushUtils.logStringCache); PushUtils.loginBaiduCloud(getApplicationContext()); } else { PushManager.stopWork(getApplicationContext()); } } @Override public int onStartCommand(Intent intent, int flags, int startId) { Logger.d("onStartCommand()"); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { Logger.d("onDestroy()"); super.onDestroy(); } public void registerClient(String userId, String channelId) { ApiService.register(this, userId, channelId, registerCallBack); } private CallBack registerCallBack = new CallBack() { @Override public void onCancelled() { } @Override public void onStart() { } @Override public void onSuccess(JSONObject jsonObj) { try { String retCode = ""; String data = ""; Logger.d("-------getRegisterInfo=" + jsonObj.toString()); retCode = JsonUtils.getStringValue(jsonObj, Constants.REQUEST_STATUS); data = JsonUtils.getStringValue(jsonObj, Constants.REQUEST_DATA); /*if (!Constants.REQUEST_STATUS_OK.equals(retCode)) { onFailure(data); } else { if (TextUtils.isEmpty(data)) { onFailure(Utils.getResourceString(getApplicationContext(), R.string.nonetwork_prompt_server_error)); } else { client = JsonUtils.parseJSONClient(jsonObj); } }*/ if (retCode.equals(Constants.REQUEST_STATUS_FORBIDDEN)) { ToastUtil.showToast(getApplicationContext(), R.string.msg_pos_forbiden, Toast.LENGTH_LONG); } JSONObject dataJson = JsonUtils.getJSONObject(jsonObj, Constants.REQUEST_DATA); String terminalId = JsonUtils.getStringValue(dataJson, Constants.JSON_KEY_TERMINAL_ID); AppStorePreference.saveTerminaID(getApplicationContext(), terminalId); } catch (Exception e) { onFailure("get client register response error!"); } } @Override public void onFailure(String msg) { Logger.d("describe=" + msg); if (msg.contains(ResultSet.NET_ERROR.describe)) { ToastUtil.showToast(getApplicationContext(), R.string.nonetwork_prompt_server_error, Toast.LENGTH_LONG); } } }; }