FtpParamerService.java 5.39 KB
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));
        }

    }


}