package com.ectrip.cyt.service; import android.annotation.SuppressLint; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.Message; //import android.support.annotation.Nullable; import android.text.TextUtils; import com.ectrip.cyt.bean.GetFtp; import com.ectrip.cyt.bean.ResultBean; import com.ectrip.cyt.config.DevicTool; import com.ectrip.cyt.constant.CallBackTypeConstant; import com.ectrip.cyt.constant.CheckTicketConstant; import com.ectrip.cyt.constant.ParamContants; import com.ectrip.cyt.utils.LogUtil; import com.ectrip.cyt.utils.PreferenceUtils; import com.ectrip.trips.net.BasePostProtocol; import com.ectrip.trips.net.INetCallBack; import com.ectrip.trips.net.ModelTools; public class FtpParamerService extends Service { private String TAG = "FtpParamerService"; private String myId; private String accid; private String mac; private String url ; // private final int MSG_FTP_TIME = 1; private final int MSG_FTP_3721 = 2; // private final int MSG_FTP_8650 = 3; // private final int MSG_FTP_8612 = 4; // private final int MSG_FTP_SLCK = 5; // private final int MSG_FTP_ONE = 6; @SuppressLint("HandlerLeak") private Handler mHandle = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case MSG_FTP_3721: initFtp3721(); break; } } }; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { initData(); mHandle.sendEmptyMessageDelayed(MSG_FTP_3721, 2500); // AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); // int anHour = 5 * 60 * 1000; // long triggerAtTime = SystemClock.elapsedRealtime() + anHour; // Intent intent1 = new Intent(this, AlarmReceiver.class); // intent1.setAction(AlarmReceiver.ACTIION_CHECKDEV); // PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT); // manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingIntent); return super.onStartCommand(intent, flags, startId); } private void initData() { mac = PreferenceUtils.getString(this, ParamContants.SET_mac, ""); if(TextUtils.isEmpty(mac)){ mac = DevicTool.getInstance().getDevId(); PreferenceUtils.putString(this, ParamContants.SET_mac, mac); } String ip = PreferenceUtils.getString(this, ParamContants.SET_ip, ""); if (TextUtils.isEmpty(ip)) { return; } url = CheckTicketConstant.httphead + ip + CheckTicketConstant.action; } /** * 获取服务器参数,用于日志上传 */ private void initFtp3721() { GetFtp getFtp = new GetFtp(); getFtp.setAccid("3721"); //闸机ID getFtp.setMac(mac); new BasePostProtocol().loadMoreData(url, ModelTools.getParam(getFtp, CheckTicketConstant.GETFTP), new MainNetCallBack(CallBackTypeConstant.GETFEPPRARMETER)); } /** * 网络请求的回调 */ class MainNetCallBack implements INetCallBack { int type; public MainNetCallBack(int type) { this.type = type; } @Override public void onFailure(String error) { switch (type) { case CallBackTypeConstant.GETFEPPRARMETER: LogUtil.d(TAG, "【获取ftp参数失败 == 3721】"); break; default: LogUtil.d(TAG, error); break; } } @Override public void onSuccessed(String result) { LogUtil.d("HTTP", "【返回结果】" + result); switch (type) { case CallBackTypeConstant.GETFEPPRARMETER: getFtpParamer(result); break; default: break; } } @Override public void onPrepare() { } } private void getFtpParamer(String result) { try { ResultBean bean = ModelTools.parseRequest(result, ResultBean.class); String host = bean.getResult(0, 0); String port = bean.getResult(0, 1); String username = bean.getResult(0, 2); String password = bean.getResult(0, 3); if (!TextUtils.isEmpty(host) && !TextUtils.isEmpty(username) && !TextUtils.isEmpty(password) && host.length() > 1 && username.length() > 1 && password.length() > 1) { LogUtil.i(TAG, "【获取ftp参数正确】"); PreferenceUtils.putString(this,ParamContants.SET_FPT_HOST, host); PreferenceUtils.putString(this,ParamContants.SET_FPT_USETR, username); PreferenceUtils.putString(this,ParamContants.SET_FPT_PASSWORD, password); PreferenceUtils.putString(this,ParamContants.SET_FPT_PORT, port); } else { LogUtil.e(TAG, "【获取ftp参数失败!】"); } } catch (Exception e) { LogUtil.e(TAG, LogUtil.getExMsg(e)); } } }