|
@@ -7,6 +7,7 @@ import android.app.Service;
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.content.IntentFilter;
|
|
import android.os.Build;
|
|
import android.os.Build;
|
|
|
|
+import android.os.CountDownTimer;
|
|
import android.os.IBinder;
|
|
import android.os.IBinder;
|
|
import android.text.TextUtils;
|
|
import android.text.TextUtils;
|
|
import android.util.Log;
|
|
import android.util.Log;
|
|
@@ -21,10 +22,12 @@ import androidx.work.WorkManager;
|
|
|
|
|
|
import com.blankj.utilcode.util.ActivityUtils;
|
|
import com.blankj.utilcode.util.ActivityUtils;
|
|
import com.blankj.utilcode.util.AppUtils;
|
|
import com.blankj.utilcode.util.AppUtils;
|
|
|
|
+import com.blankj.utilcode.util.FileUtils;
|
|
import com.blankj.utilcode.util.LogUtils;
|
|
import com.blankj.utilcode.util.LogUtils;
|
|
import com.blankj.utilcode.util.NetworkUtils;
|
|
import com.blankj.utilcode.util.NetworkUtils;
|
|
import com.blankj.utilcode.util.SPUtils;
|
|
import com.blankj.utilcode.util.SPUtils;
|
|
import com.blankj.utilcode.util.ThreadUtils;
|
|
import com.blankj.utilcode.util.ThreadUtils;
|
|
|
|
+import com.blankj.utilcode.util.TimeUtils;
|
|
import com.hikvision.dmb.display.InfoDisplayApi;
|
|
import com.hikvision.dmb.display.InfoDisplayApi;
|
|
import com.hikvision.dmb.network.InfoNetworkApi;
|
|
import com.hikvision.dmb.network.InfoNetworkApi;
|
|
import com.hikvision.dmb.system.InfoSystemApi;
|
|
import com.hikvision.dmb.system.InfoSystemApi;
|
|
@@ -37,12 +40,14 @@ import com.lxj.xpopup.XPopup;
|
|
import org.greenrobot.eventbus.EventBus;
|
|
import org.greenrobot.eventbus.EventBus;
|
|
import org.json.JSONObject;
|
|
import org.json.JSONObject;
|
|
|
|
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Locale;
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import okhttp3.Response;
|
|
import okhttp3.Response;
|
|
-import xn.update.MainActivity;
|
|
|
|
import xn.update.R;
|
|
import xn.update.R;
|
|
import xn.update.Tool;
|
|
import xn.update.Tool;
|
|
import xn.update.constant.AppConstant;
|
|
import xn.update.constant.AppConstant;
|
|
@@ -54,6 +59,7 @@ import xn.update.works.TaskWork;
|
|
public class TaskService extends Service {
|
|
public class TaskService extends Service {
|
|
|
|
|
|
private TimeTickReceiver timeTickReceiver;
|
|
private TimeTickReceiver timeTickReceiver;
|
|
|
|
+ private CountDownTimer permissionCdt;
|
|
|
|
|
|
@Nullable
|
|
@Nullable
|
|
@Override
|
|
@Override
|
|
@@ -87,7 +93,33 @@ public class TaskService extends Service {
|
|
// 监听分钟广播
|
|
// 监听分钟广播
|
|
registerReceiver(timeTickReceiver, new IntentFilter(Intent.ACTION_TIME_TICK));
|
|
registerReceiver(timeTickReceiver, new IntentFilter(Intent.ACTION_TIME_TICK));
|
|
|
|
|
|
- requestPermission();
|
|
|
|
|
|
+ Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.READ_EXTERNAL_STORAGE");
|
|
|
|
+ Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.WRITE_EXTERNAL_STORAGE");
|
|
|
|
+ Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.NOTIFICATION_SERVICE");
|
|
|
|
+ permissionCdt = new CountDownTimer(1000, 1000) {
|
|
|
|
+ @Override
|
|
|
|
+ public void onTick(long millisUntilFinished) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onFinish() {
|
|
|
|
+ if (!XXPermissions.isGranted(ActivityUtils.getTopActivity(), Permission.READ_EXTERNAL_STORAGE)
|
|
|
|
+ || !XXPermissions.isGranted(ActivityUtils.getTopActivity(), Permission.WRITE_EXTERNAL_STORAGE)
|
|
|
|
+ || !XXPermissions.isGranted(ActivityUtils.getTopActivity(), Permission.NOTIFICATION_SERVICE)) {
|
|
|
|
+ Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.READ_EXTERNAL_STORAGE");
|
|
|
|
+ Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.WRITE_EXTERNAL_STORAGE");
|
|
|
|
+ Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.NOTIFICATION_SERVICE");
|
|
|
|
+ permissionCdt.start();
|
|
|
|
+ }else {
|
|
|
|
+ requestPermission();
|
|
|
|
+ permissionCdt.cancel();
|
|
|
|
+ permissionCdt=null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ permissionCdt.start();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -230,5 +262,30 @@ public class TaskService extends Service {
|
|
|
|
|
|
private void terminalAuth() {
|
|
private void terminalAuth() {
|
|
ThreadUtils.executeByCachedAtFixRate(simpleTask, ThreadLocalRandom.current().nextInt(10, 20), TimeUnit.SECONDS);
|
|
ThreadUtils.executeByCachedAtFixRate(simpleTask, ThreadLocalRandom.current().nextInt(10, 20), TimeUnit.SECONDS);
|
|
|
|
+ // 清理一个月前的log
|
|
|
|
+ ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<Object>() {
|
|
|
|
+ @Override
|
|
|
|
+ public Object doInBackground() throws Throwable {
|
|
|
|
+ List<File> fileList = FileUtils.listFilesInDir("/sdcard/logs/");
|
|
|
|
+ for (int i = 0; i < fileList.size(); i++) {
|
|
|
|
+ File file = fileList.get(i);
|
|
|
|
+ String fileName = file.getName();
|
|
|
|
+ fileName = fileName.replace(AppUtils.getAppName() + "_", "");
|
|
|
|
+ fileName = fileName.replace("_" + AppUtils.getAppPackageName(), "");
|
|
|
|
+ fileName = fileName.replace(".txt", "");
|
|
|
|
+ long fileTime = TimeUtils.string2Millis(fileName, new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()));
|
|
|
|
+ long oneMonth = 30 * 86400 * 1000L;
|
|
|
|
+ if ((System.currentTimeMillis() - fileTime) > oneMonth) {
|
|
|
|
+ FileUtils.delete(file);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onSuccess(Object result) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
}
|