UploadLogService.java 3.93 KB
package com.ectrip.cyt.service;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Environment;
import android.os.IBinder;
import android.os.SystemClock;
import android.text.TextUtils;

import com.ectrip.cyt.config.MyApp;
import com.ectrip.cyt.constant.ParamContants;
import com.ectrip.cyt.receiver.AlarmReceiver;
import com.ectrip.cyt.utils.FtpsTools;
import com.ectrip.cyt.utils.LogUtil;
import com.ectrip.cyt.utils.PreferenceUtils;
import com.ectrip.cyt.utils.ThreadUtils;


import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class UploadLogService extends Service {

    private String TAG = "UploadLogService";

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        ThreadUtils.getInstance().exeute(new MyRunnable());

        AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
//        int anHour = 6 * 3600 * 1000;
        int anHour = 3 * 3600 * 1000;
//        int anHour = 120 * 1000;
        long triggerAtTime = SystemClock.elapsedRealtime() + anHour;
        Intent intent1 = new Intent(this, AlarmReceiver.class);
        intent1.setAction(AlarmReceiver.ACTIION_UPLOAD);
        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 class MyRunnable implements Runnable {
        @Override
        public void run() {
            try {
                Thread.sleep(30000);
                LogUtil.i(TAG, "【开始自动上传日记】");
                String foldPath = Environment.getExternalStorageDirectory()
                        + File.separator + "ectripLOG" + File.separator + "log_CYT"
                        + File.separator;
                int countFile = FtpsTools.countFilesInFolder(foldPath);
                List<String> fileNames = new ArrayList<>();
                if(countFile > 0){
                    fileNames.add(foldPath + "tdos.log");
                    for(int i=1;i<countFile;i++){
                        if(i >= 6){
                            break;
                        }
                        fileNames.add(foldPath + "tdos.log" + "." + i);
                    }
                }
//                String fileName = Environment.getExternalStorageDirectory().getAbsolutePath()
//                        + File.separator + "EctripAndroid" + File.separator + "log"
//                        + File.separator + "check.log";
                String host = PreferenceUtils.getString(MyApp.getInstance(), ParamContants.SET_FPT_HOST);
                String username = PreferenceUtils.getString(MyApp.getInstance(),ParamContants.SET_FPT_USETR);
                String password = PreferenceUtils.getString(MyApp.getInstance(),ParamContants.SET_FPT_PASSWORD);
                String mac = PreferenceUtils.getString(MyApp.getInstance(),ParamContants.SET_mac);
                String portStr = PreferenceUtils.getString(MyApp.getInstance(),ParamContants.SET_FPT_PORT);
                if (TextUtils.isEmpty(host) || TextUtils.isEmpty(username) || TextUtils.isEmpty(password) || TextUtils.isEmpty(mac)) {
                    LogUtil.i(TAG, "【FTP参数不全】");


                    return;
                }
                int port;
                try {
                    port = Integer.parseInt(portStr);
                } catch (Exception e) {
                    port = 22;
                }
                FtpsTools.Sftp_server_multiple(fileNames, host, username, password, mac, port);

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}