diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index d5fb6ba..51f9943 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -1,5 +1,6 @@
package com.casic.dcms.utils;
+import android.content.Context;
import android.os.Environment;
import android.util.Log;
@@ -11,26 +12,42 @@
public class FileUtils {
private static final String TAG = "FileUtils";
- private static File parentDir;
+ private static File audioDir;
+ private static File imageDir;
+ private static File downloadDir;
- public static void initFileConfig() {
- parentDir = new File(Environment.getExternalStorageDirectory(), "Casic");
+ public static void initFileConfig(Context context) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
if (!parentDir.exists()) {
boolean mkdir = parentDir.mkdir();
if (mkdir) {
Log.d(TAG, "initFileConfig: 创建Casic文件夹");
+ audioDir = new File(parentDir, "AudioFile");
+ if (!audioDir.exists()) {
+ boolean mkAudioDir = audioDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
+ }
+ }
+ imageDir = new File(parentDir, "CompressImageFile");
+ if (!imageDir.exists()) {
+ boolean mkImageDir = imageDir.mkdir();
+ if (mkImageDir) {
+ Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
+ }
+ }
+ downloadDir = new File(parentDir, "DownloadFile");
+ if (!downloadDir.exists()) {
+ boolean mkDownDir = downloadDir.mkdir();
+ if (mkDownDir) {
+ Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
+ }
+ }
}
}
}
static File getOutputAudioFile() {
- File audioDir = new File(parentDir, "AudioFile");
- if (!audioDir.exists()) {
- boolean mkdir = audioDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
- }
- }
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a");
if (!audioFile.exists()) {
@@ -44,25 +61,11 @@
}
public static String getImageCompressPath() {
- File imageDir = new File(parentDir, "CompressImageFile");
- if (!imageDir.exists()) {
- boolean mkdir = imageDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
- }
- }
return imageDir.toString();
}
//储存下载文件的目录
- public static String getDownloadFilePath() {
- File downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkdir = downloadDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
+ static String getDownloadFilePath() {
return downloadDir.toString();
}
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index d5fb6ba..51f9943 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -1,5 +1,6 @@
package com.casic.dcms.utils;
+import android.content.Context;
import android.os.Environment;
import android.util.Log;
@@ -11,26 +12,42 @@
public class FileUtils {
private static final String TAG = "FileUtils";
- private static File parentDir;
+ private static File audioDir;
+ private static File imageDir;
+ private static File downloadDir;
- public static void initFileConfig() {
- parentDir = new File(Environment.getExternalStorageDirectory(), "Casic");
+ public static void initFileConfig(Context context) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
if (!parentDir.exists()) {
boolean mkdir = parentDir.mkdir();
if (mkdir) {
Log.d(TAG, "initFileConfig: 创建Casic文件夹");
+ audioDir = new File(parentDir, "AudioFile");
+ if (!audioDir.exists()) {
+ boolean mkAudioDir = audioDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
+ }
+ }
+ imageDir = new File(parentDir, "CompressImageFile");
+ if (!imageDir.exists()) {
+ boolean mkImageDir = imageDir.mkdir();
+ if (mkImageDir) {
+ Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
+ }
+ }
+ downloadDir = new File(parentDir, "DownloadFile");
+ if (!downloadDir.exists()) {
+ boolean mkDownDir = downloadDir.mkdir();
+ if (mkDownDir) {
+ Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
+ }
+ }
}
}
}
static File getOutputAudioFile() {
- File audioDir = new File(parentDir, "AudioFile");
- if (!audioDir.exists()) {
- boolean mkdir = audioDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
- }
- }
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a");
if (!audioFile.exists()) {
@@ -44,25 +61,11 @@
}
public static String getImageCompressPath() {
- File imageDir = new File(parentDir, "CompressImageFile");
- if (!imageDir.exists()) {
- boolean mkdir = imageDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
- }
- }
return imageDir.toString();
}
//储存下载文件的目录
- public static String getDownloadFilePath() {
- File downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkdir = downloadDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
+ static String getDownloadFilePath() {
return downloadDir.toString();
}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cfe5bfc..0164146 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -63,16 +63,15 @@
/**
* 创建常驻状态栏通知
- *
- * @param title 通知标题
- * @param message 通知内容
*/
- public Notification createKeepAlive(String title, String message) {
+ public Notification createKeepAlive() {
Notification.Builder builder = createBuilder();
- builder.setContentTitle(title)
- .setContentText(message)
+ Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.normal);
+ builder.setContentTitle("移动城管")
+ .setContentText("移动城管运行中")
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.mipmap.app_logo);
+ .setSmallIcon(R.mipmap.app_logo)
+ .setLargeIcon(bitmap);
Notification notification = builder.build();
notification.flags = Notification.FLAG_NO_CLEAR;
return notification;
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index d5fb6ba..51f9943 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -1,5 +1,6 @@
package com.casic.dcms.utils;
+import android.content.Context;
import android.os.Environment;
import android.util.Log;
@@ -11,26 +12,42 @@
public class FileUtils {
private static final String TAG = "FileUtils";
- private static File parentDir;
+ private static File audioDir;
+ private static File imageDir;
+ private static File downloadDir;
- public static void initFileConfig() {
- parentDir = new File(Environment.getExternalStorageDirectory(), "Casic");
+ public static void initFileConfig(Context context) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
if (!parentDir.exists()) {
boolean mkdir = parentDir.mkdir();
if (mkdir) {
Log.d(TAG, "initFileConfig: 创建Casic文件夹");
+ audioDir = new File(parentDir, "AudioFile");
+ if (!audioDir.exists()) {
+ boolean mkAudioDir = audioDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
+ }
+ }
+ imageDir = new File(parentDir, "CompressImageFile");
+ if (!imageDir.exists()) {
+ boolean mkImageDir = imageDir.mkdir();
+ if (mkImageDir) {
+ Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
+ }
+ }
+ downloadDir = new File(parentDir, "DownloadFile");
+ if (!downloadDir.exists()) {
+ boolean mkDownDir = downloadDir.mkdir();
+ if (mkDownDir) {
+ Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
+ }
+ }
}
}
}
static File getOutputAudioFile() {
- File audioDir = new File(parentDir, "AudioFile");
- if (!audioDir.exists()) {
- boolean mkdir = audioDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
- }
- }
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a");
if (!audioFile.exists()) {
@@ -44,25 +61,11 @@
}
public static String getImageCompressPath() {
- File imageDir = new File(parentDir, "CompressImageFile");
- if (!imageDir.exists()) {
- boolean mkdir = imageDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
- }
- }
return imageDir.toString();
}
//储存下载文件的目录
- public static String getDownloadFilePath() {
- File downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkdir = downloadDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
+ static String getDownloadFilePath() {
return downloadDir.toString();
}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cfe5bfc..0164146 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -63,16 +63,15 @@
/**
* 创建常驻状态栏通知
- *
- * @param title 通知标题
- * @param message 通知内容
*/
- public Notification createKeepAlive(String title, String message) {
+ public Notification createKeepAlive() {
Notification.Builder builder = createBuilder();
- builder.setContentTitle(title)
- .setContentText(message)
+ Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.normal);
+ builder.setContentTitle("移动城管")
+ .setContentText("移动城管运行中")
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.mipmap.app_logo);
+ .setSmallIcon(R.mipmap.app_logo)
+ .setLargeIcon(bitmap);
Notification notification = builder.build();
notification.flags = Notification.FLAG_NO_CLEAR;
return notification;
diff --git a/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
new file mode 100644
index 0000000..4683201
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class VersionUpgradeFileProvider extends FileProvider {
+}
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index d5fb6ba..51f9943 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -1,5 +1,6 @@
package com.casic.dcms.utils;
+import android.content.Context;
import android.os.Environment;
import android.util.Log;
@@ -11,26 +12,42 @@
public class FileUtils {
private static final String TAG = "FileUtils";
- private static File parentDir;
+ private static File audioDir;
+ private static File imageDir;
+ private static File downloadDir;
- public static void initFileConfig() {
- parentDir = new File(Environment.getExternalStorageDirectory(), "Casic");
+ public static void initFileConfig(Context context) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
if (!parentDir.exists()) {
boolean mkdir = parentDir.mkdir();
if (mkdir) {
Log.d(TAG, "initFileConfig: 创建Casic文件夹");
+ audioDir = new File(parentDir, "AudioFile");
+ if (!audioDir.exists()) {
+ boolean mkAudioDir = audioDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
+ }
+ }
+ imageDir = new File(parentDir, "CompressImageFile");
+ if (!imageDir.exists()) {
+ boolean mkImageDir = imageDir.mkdir();
+ if (mkImageDir) {
+ Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
+ }
+ }
+ downloadDir = new File(parentDir, "DownloadFile");
+ if (!downloadDir.exists()) {
+ boolean mkDownDir = downloadDir.mkdir();
+ if (mkDownDir) {
+ Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
+ }
+ }
}
}
}
static File getOutputAudioFile() {
- File audioDir = new File(parentDir, "AudioFile");
- if (!audioDir.exists()) {
- boolean mkdir = audioDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
- }
- }
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a");
if (!audioFile.exists()) {
@@ -44,25 +61,11 @@
}
public static String getImageCompressPath() {
- File imageDir = new File(parentDir, "CompressImageFile");
- if (!imageDir.exists()) {
- boolean mkdir = imageDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
- }
- }
return imageDir.toString();
}
//储存下载文件的目录
- public static String getDownloadFilePath() {
- File downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkdir = downloadDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
+ static String getDownloadFilePath() {
return downloadDir.toString();
}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cfe5bfc..0164146 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -63,16 +63,15 @@
/**
* 创建常驻状态栏通知
- *
- * @param title 通知标题
- * @param message 通知内容
*/
- public Notification createKeepAlive(String title, String message) {
+ public Notification createKeepAlive() {
Notification.Builder builder = createBuilder();
- builder.setContentTitle(title)
- .setContentText(message)
+ Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.normal);
+ builder.setContentTitle("移动城管")
+ .setContentText("移动城管运行中")
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.mipmap.app_logo);
+ .setSmallIcon(R.mipmap.app_logo)
+ .setLargeIcon(bitmap);
Notification notification = builder.build();
notification.flags = Notification.FLAG_NO_CLEAR;
return notification;
diff --git a/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
new file mode 100644
index 0000000..4683201
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class VersionUpgradeFileProvider extends FileProvider {
+}
diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml
index f2d36c4..90263ac 100644
--- a/app/src/main/res/layout/activity_case_detail.xml
+++ b/app/src/main/res/layout/activity_case_detail.xml
@@ -189,7 +189,6 @@
android:layout_alignParentEnd="true"
android:layout_marginStart="25dp"
android:layout_toEndOf="@id/v"
- android:gravity="end"
android:textSize="@dimen/textFontSize" />
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index d5fb6ba..51f9943 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -1,5 +1,6 @@
package com.casic.dcms.utils;
+import android.content.Context;
import android.os.Environment;
import android.util.Log;
@@ -11,26 +12,42 @@
public class FileUtils {
private static final String TAG = "FileUtils";
- private static File parentDir;
+ private static File audioDir;
+ private static File imageDir;
+ private static File downloadDir;
- public static void initFileConfig() {
- parentDir = new File(Environment.getExternalStorageDirectory(), "Casic");
+ public static void initFileConfig(Context context) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
if (!parentDir.exists()) {
boolean mkdir = parentDir.mkdir();
if (mkdir) {
Log.d(TAG, "initFileConfig: 创建Casic文件夹");
+ audioDir = new File(parentDir, "AudioFile");
+ if (!audioDir.exists()) {
+ boolean mkAudioDir = audioDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
+ }
+ }
+ imageDir = new File(parentDir, "CompressImageFile");
+ if (!imageDir.exists()) {
+ boolean mkImageDir = imageDir.mkdir();
+ if (mkImageDir) {
+ Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
+ }
+ }
+ downloadDir = new File(parentDir, "DownloadFile");
+ if (!downloadDir.exists()) {
+ boolean mkDownDir = downloadDir.mkdir();
+ if (mkDownDir) {
+ Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
+ }
+ }
}
}
}
static File getOutputAudioFile() {
- File audioDir = new File(parentDir, "AudioFile");
- if (!audioDir.exists()) {
- boolean mkdir = audioDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
- }
- }
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a");
if (!audioFile.exists()) {
@@ -44,25 +61,11 @@
}
public static String getImageCompressPath() {
- File imageDir = new File(parentDir, "CompressImageFile");
- if (!imageDir.exists()) {
- boolean mkdir = imageDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
- }
- }
return imageDir.toString();
}
//储存下载文件的目录
- public static String getDownloadFilePath() {
- File downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkdir = downloadDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
+ static String getDownloadFilePath() {
return downloadDir.toString();
}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cfe5bfc..0164146 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -63,16 +63,15 @@
/**
* 创建常驻状态栏通知
- *
- * @param title 通知标题
- * @param message 通知内容
*/
- public Notification createKeepAlive(String title, String message) {
+ public Notification createKeepAlive() {
Notification.Builder builder = createBuilder();
- builder.setContentTitle(title)
- .setContentText(message)
+ Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.normal);
+ builder.setContentTitle("移动城管")
+ .setContentText("移动城管运行中")
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.mipmap.app_logo);
+ .setSmallIcon(R.mipmap.app_logo)
+ .setLargeIcon(bitmap);
Notification notification = builder.build();
notification.flags = Notification.FLAG_NO_CLEAR;
return notification;
diff --git a/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
new file mode 100644
index 0000000..4683201
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class VersionUpgradeFileProvider extends FileProvider {
+}
diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml
index f2d36c4..90263ac 100644
--- a/app/src/main/res/layout/activity_case_detail.xml
+++ b/app/src/main/res/layout/activity_case_detail.xml
@@ -189,7 +189,6 @@
android:layout_alignParentEnd="true"
android:layout_marginStart="25dp"
android:layout_toEndOf="@id/v"
- android:gravity="end"
android:textSize="@dimen/textFontSize" />
diff --git a/app/src/main/res/layout/include_case_base_layout_read_only.xml b/app/src/main/res/layout/include_case_base_layout_read_only.xml
index 39ca7aa..eb77a8c 100644
--- a/app/src/main/res/layout/include_case_base_layout_read_only.xml
+++ b/app/src/main/res/layout/include_case_base_layout_read_only.xml
@@ -136,6 +136,7 @@
diff --git a/app/build.gradle b/app/build.gradle
index c649d4a..68f1bf0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
applicationId "com.casic.dcms"
minSdkVersion 21
targetSdkVersion 30
- versionCode 2
- versionName "v2.1.0.0"
+ versionCode 11
+ versionName "v1.0.0.3"
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a5cca2e..5792e20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
@@ -44,7 +45,7 @@
tools:targetApi="m">
+ android:excludeFromRecents="false">
@@ -86,7 +87,7 @@
-
+
+
+
+
+
+
@@ -110,5 +122,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
index 0a18374..8bb4989 100644
--- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java
+++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java
@@ -23,7 +23,7 @@
QMUISwipeBackActivityManager.init(this);
SaveKeyValues.initSharedPreferences(this);
ToastHelper.initToastHelper(this);
- FileUtils.initFileConfig();
+ FileUtils.initFileConfig(this);
ArcGISRuntimeEnvironment.setLicense(getString(R.string.arcgis_license));//去掉开发版水印
ArcGISRuntimeEnvironment.setApiKey(getString(R.string.arcgis_key));
//个推初始化
diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
new file mode 100644
index 0000000..52c10a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java
@@ -0,0 +1,60 @@
+package com.casic.dcms.service;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.location.Location;
+import android.os.IBinder;
+import android.os.Message;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.casic.dcms.ui.MainActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.NotificationHelper;
+import com.casic.dcms.utils.callback.ILocationListener;
+
+public class UploadLocationService extends Service {
+
+ private static final String TAG = "UploadLocationService";
+
+ public UploadLocationService() {
+
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "onCreate: UploadLocationService");
+ NotificationHelper notificationHelper = NotificationHelper.getInstance(this);
+ Notification notification = notificationHelper.createKeepAlive();
+ startForeground(Integer.MAX_VALUE, notification);
+
+ LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
+ @Override
+ public void onLocationGet(Location location) {
+ if (location != null) {
+ Message message = Message.obtain();
+ message.what = Constant.UPLOAD_LOCATION;
+ message.obj = location;
+ MainActivity.sendMessage(message);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ // 如果Service被终止,当资源允许情况下,重启service
+ return START_STICKY;
+ }
+
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
index 225d5d1..8722cf6 100644
--- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java
@@ -4,9 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.location.Location;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.widget.TextView;
@@ -25,17 +25,16 @@
import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl;
import com.casic.dcms.mvp.view.IPushRegisterView;
import com.casic.dcms.mvp.view.IUploadPositionView;
+import com.casic.dcms.service.UploadLocationService;
import com.casic.dcms.ui.fragment.HomePageFragment;
import com.casic.dcms.ui.fragment.MinePageFragment;
import com.casic.dcms.ui.fragment.NoticePageFragment;
import com.casic.dcms.ui.fragment.PhonePageFragment;
import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.LocationHelper;
import com.casic.dcms.utils.NotificationHelper;
import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
-import com.casic.dcms.utils.callback.ILocationListener;
import com.casic.dcms.widgets.NoScrollViewPager;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.gyf.immersionbar.ImmersionBar;
@@ -61,6 +60,7 @@
private List pageList;
private UploadPositionPresenterImpl uploadPositionPresenter;
private PushRegisterPresenterImpl registerPresenter;
+ private String imei = "";
private static WeakReferenceHandler weakReferenceHandler;
@Override
@@ -79,6 +79,7 @@
public void initData() {
//个推初始化
com.igexin.sdk.PushManager.getInstance().initialize(this);
+ weakReferenceHandler = new WeakReferenceHandler(this);
uploadPositionPresenter = new UploadPositionPresenterImpl(this);
registerPresenter = new PushRegisterPresenterImpl(this);
pageList = new ArrayList<>();
@@ -86,23 +87,13 @@
pageList.add(new PhonePageFragment());
pageList.add(new NoticePageFragment());
pageList.add(new MinePageFragment());
- weakReferenceHandler = new WeakReferenceHandler(this);
- String imei = OtherUtils.obtainSimCardSerialNumber(this);
- if (TextUtils.isEmpty(imei)) {
- return;
+ imei = OtherUtils.obtainSimCardSerialNumber(this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(new Intent(this, UploadLocationService.class));
+ } else {
+ startService(new Intent(this, UploadLocationService.class));
}
- //根据条件上传位置信息
- LocationHelper.obtainCurrentLocation(this, new ILocationListener() {
- @Override
- public void onLocationGet(Location location) {
- if (location != null) {
- Log.d(TAG, "onLocationGet: 位置上报");
- uploadPositionPresenter.onReadyRetrofitRequest(imei,
- String.valueOf(location.getLatitude()),
- String.valueOf(location.getLongitude()));
- }
- }
- });
}
@Override
@@ -162,6 +153,7 @@
/**
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveClientId(Context, String)}页面调用
* 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}页面调用
+ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用
*/
public static void sendMessage(Message msg) {
weakReferenceHandler.sendMessage(msg);
@@ -204,6 +196,12 @@
CaseDetailActivity.class);
notificationHelper.push(1, notification);
break;
+ case Constant.UPLOAD_LOCATION:
+ Log.d(TAG, "位置上报");
+ Location location = (Location) msg.obj;
+ mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei,
+ String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
+ break;
case Constant.LOGIN_OUT:
Log.d(TAG, "退出登录");
//回到登录页
@@ -216,7 +214,6 @@
}
-
@Override
public void obtainUploadPositionResult(ActionResultBean resultBean) {
// Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean));
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
index 4177798..f01637b 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java
@@ -83,8 +83,6 @@
progressDialog = new ProgressDialog(context);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressDrawable(context.getResources().getDrawable(R.drawable.bg_progress));
- progressDialog.setCanceledOnTouchOutside(false);
- progressDialog.setCancelable(false);
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java b/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
deleted file mode 100644
index 1b2bb6c..0000000
--- a/app/src/main/java/com/casic/dcms/utils/BroadcastManager.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.casic.dcms.utils;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : Pengxh
- * @time : 2021/4/14 10:55
- * @email : 290677893@qq.com
- **/
-public class BroadcastManager {
- private static final String TAG = "BroadcastManager";
- private Context mContext;
- private static BroadcastManager broadcastManager;
- private Map receiverMap;
-
- private BroadcastManager(Context context) {
- this.mContext = context;
- receiverMap = new HashMap<>();
- }
-
- /**
- * 双重锁单例
- */
- public static BroadcastManager getInstance(Context context) {
- if (broadcastManager == null) {
- synchronized (BroadcastManager.class) {
- if (broadcastManager == null) {
- broadcastManager = new BroadcastManager(context);
- }
- }
- }
- return broadcastManager;
- }
-
- /**
- * 添加单个Action,广播的初始化
- */
- public void addAction(String action, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- filter.addAction(action);
- mContext.registerReceiver(receiver, filter);
- receiverMap.put(action, receiver);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 添加多个Action,广播的初始化
- */
- public void addAction(String[] actions, BroadcastReceiver receiver) {
- try {
- IntentFilter filter = new IntentFilter();
- for (String action : actions) {
- filter.addAction(action);
- receiverMap.put(action, receiver);
- }
- mContext.registerReceiver(receiver, filter);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 发送广播
- *
- * @param action 唯一码
- * @param msg 参数
- */
- public void sendBroadcast(String action, String msg) {
- try {
- Intent intent = new Intent();
- intent.setAction(action);
- intent.putExtra("data", msg);
- mContext.sendBroadcast(intent);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 销毁广播
- *
- * @param actions action集合
- */
- public void destroy(String... actions) {
- try {
- if (receiverMap != null) {
- for (String action : actions) {
- BroadcastReceiver receiver = receiverMap.get(action);
- if (receiver != null) {
- mContext.unregisterReceiver(receiver);
- }
- }
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index d34b289..5840276 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -53,6 +53,7 @@
public static final int CASE_HANDLE_OK = 17;
public static final int CASE_OVERTIME_OK = 18;
public static final int CASE_URGENT_OK = 19;
+ public static final int UPLOAD_LOCATION = 20;
public static final double DEFAULT_LNG = 116.06639658728571;
public static final double DEFAULT_LAT = 27.759547805536418;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index d5fb6ba..51f9943 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -1,5 +1,6 @@
package com.casic.dcms.utils;
+import android.content.Context;
import android.os.Environment;
import android.util.Log;
@@ -11,26 +12,42 @@
public class FileUtils {
private static final String TAG = "FileUtils";
- private static File parentDir;
+ private static File audioDir;
+ private static File imageDir;
+ private static File downloadDir;
- public static void initFileConfig() {
- parentDir = new File(Environment.getExternalStorageDirectory(), "Casic");
+ public static void initFileConfig(Context context) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
if (!parentDir.exists()) {
boolean mkdir = parentDir.mkdir();
if (mkdir) {
Log.d(TAG, "initFileConfig: 创建Casic文件夹");
+ audioDir = new File(parentDir, "AudioFile");
+ if (!audioDir.exists()) {
+ boolean mkAudioDir = audioDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
+ }
+ }
+ imageDir = new File(parentDir, "CompressImageFile");
+ if (!imageDir.exists()) {
+ boolean mkImageDir = imageDir.mkdir();
+ if (mkImageDir) {
+ Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
+ }
+ }
+ downloadDir = new File(parentDir, "DownloadFile");
+ if (!downloadDir.exists()) {
+ boolean mkDownDir = downloadDir.mkdir();
+ if (mkDownDir) {
+ Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
+ }
+ }
}
}
}
static File getOutputAudioFile() {
- File audioDir = new File(parentDir, "AudioFile");
- if (!audioDir.exists()) {
- boolean mkdir = audioDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建AudioFile文件夹");
- }
- }
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a");
if (!audioFile.exists()) {
@@ -44,25 +61,11 @@
}
public static String getImageCompressPath() {
- File imageDir = new File(parentDir, "CompressImageFile");
- if (!imageDir.exists()) {
- boolean mkdir = imageDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
- }
- }
return imageDir.toString();
}
//储存下载文件的目录
- public static String getDownloadFilePath() {
- File downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkdir = downloadDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
+ static String getDownloadFilePath() {
return downloadDir.toString();
}
diff --git a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
index cfe5bfc..0164146 100644
--- a/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/NotificationHelper.java
@@ -63,16 +63,15 @@
/**
* 创建常驻状态栏通知
- *
- * @param title 通知标题
- * @param message 通知内容
*/
- public Notification createKeepAlive(String title, String message) {
+ public Notification createKeepAlive() {
Notification.Builder builder = createBuilder();
- builder.setContentTitle(title)
- .setContentText(message)
+ Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.normal);
+ builder.setContentTitle("移动城管")
+ .setContentText("移动城管运行中")
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.mipmap.app_logo);
+ .setSmallIcon(R.mipmap.app_logo)
+ .setLargeIcon(bitmap);
Notification notification = builder.build();
notification.flags = Notification.FLAG_NO_CLEAR;
return notification;
diff --git a/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
new file mode 100644
index 0000000..4683201
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/VersionUpgradeFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class VersionUpgradeFileProvider extends FileProvider {
+}
diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml
index f2d36c4..90263ac 100644
--- a/app/src/main/res/layout/activity_case_detail.xml
+++ b/app/src/main/res/layout/activity_case_detail.xml
@@ -189,7 +189,6 @@
android:layout_alignParentEnd="true"
android:layout_marginStart="25dp"
android:layout_toEndOf="@id/v"
- android:gravity="end"
android:textSize="@dimen/textFontSize" />
diff --git a/app/src/main/res/layout/include_case_base_layout_read_only.xml b/app/src/main/res/layout/include_case_base_layout_read_only.xml
index 39ca7aa..eb77a8c 100644
--- a/app/src/main/res/layout/include_case_base_layout_read_only.xml
+++ b/app/src/main/res/layout/include_case_base_layout_read_only.xml
@@ -136,6 +136,7 @@
diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml
index 9d7b44f..023b133 100644
--- a/app/src/main/res/xml/file_paths.xml
+++ b/app/src/main/res/xml/file_paths.xml
@@ -1,5 +1,9 @@
+
+