diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } 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 42028a8..5fdaf66 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,7 +3,6 @@ import android.app.Notification; import android.content.Context; import android.content.Intent; -import android.location.Location; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -16,6 +15,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; @@ -204,9 +204,9 @@ break; case Constant.UPLOAD_LOCATION: Log.d(TAG, "位置上报"); - Location location = (Location) msg.obj; + AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, - String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); + String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); break; case Constant.LOGIN_OUT: Log.d(TAG, "退出登录"); diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } 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 42028a8..5fdaf66 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,7 +3,6 @@ import android.app.Notification; import android.content.Context; import android.content.Intent; -import android.location.Location; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -16,6 +15,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; @@ -204,9 +204,9 @@ break; case Constant.UPLOAD_LOCATION: Log.d(TAG, "位置上报"); - Location location = (Location) msg.obj; + AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, - String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); + String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); break; case Constant.LOGIN_OUT: Log.d(TAG, "退出登录"); diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index b421b01..ef9de35 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -17,6 +18,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; @@ -116,21 +118,38 @@ @Override public void initData() { - double lng = getIntent().getDoubleExtra("lng", Constant.DEFAULT_LNG); - double lat = getIntent().getDoubleExtra("lat", Constant.DEFAULT_LAT); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - locationStreetView.setText("定位成功"); - } else { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } } }, false); - mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(18000); + mapView.setViewpointScaleAsync(12000); ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); //创建底图、并设置底图图层 @@ -139,11 +158,6 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - Point point = new Point(lng, lat, mapView.getSpatialReference()); - mapView.setViewpointCenterAsync(point, 1000);//标注到指定经纬度并放大地图显示 - //添加图片Marker - addPictureMarker(point); - uploadImagePresenter = new UploadImagePresenterImpl(this); cleanToiletPresenter = new CleanToiletPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) @@ -184,13 +198,35 @@ switch (v.getId()) { case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude())); - loadingDialog.dismiss(); + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } + loadingDialog.dismiss(); } }, true); break; @@ -246,26 +282,48 @@ .forResult(PictureConfig.REQUEST_CAMERA); break; case R.id.signInButton: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); + + //打扫卫生签到 String toiletId = toiletIdView.getText().toString(); if (TextUtils.isEmpty(toiletId)) { ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); - + double longitude = aMapLocation.getLongitude(); + double latitude = aMapLocation.getLatitude(); String cleanTime = TimeOrDateUtil.timestampToDate(System.currentTimeMillis()); cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath, StringHelper.filterString(workContentView.getText().toString())); - } else { - ToastHelper.showToast("定位失败,无法签到", ToastHelper.WARING); } + loadingDialog.dismiss(); } }, true); break; @@ -275,7 +333,7 @@ private void showEditDialog(String tag) { if (tag.equals("自定义")) { QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context); - builder.setTitle("自定义工作内容") + builder.setTitle("工作内容") .setPlaceholder("请输入您此次的工作内容") .setInputType(InputType.TYPE_CLASS_TEXT) .addAction("取消", (dialog, index) -> dialog.dismiss()) diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } 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 42028a8..5fdaf66 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,7 +3,6 @@ import android.app.Notification; import android.content.Context; import android.content.Intent; -import android.location.Location; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -16,6 +15,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; @@ -204,9 +204,9 @@ break; case Constant.UPLOAD_LOCATION: Log.d(TAG, "位置上报"); - Location location = (Location) msg.obj; + AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, - String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); + String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); break; case Constant.LOGIN_OUT: Log.d(TAG, "退出登录"); diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index b421b01..ef9de35 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -17,6 +18,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; @@ -116,21 +118,38 @@ @Override public void initData() { - double lng = getIntent().getDoubleExtra("lng", Constant.DEFAULT_LNG); - double lat = getIntent().getDoubleExtra("lat", Constant.DEFAULT_LAT); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - locationStreetView.setText("定位成功"); - } else { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } } }, false); - mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(18000); + mapView.setViewpointScaleAsync(12000); ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); //创建底图、并设置底图图层 @@ -139,11 +158,6 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - Point point = new Point(lng, lat, mapView.getSpatialReference()); - mapView.setViewpointCenterAsync(point, 1000);//标注到指定经纬度并放大地图显示 - //添加图片Marker - addPictureMarker(point); - uploadImagePresenter = new UploadImagePresenterImpl(this); cleanToiletPresenter = new CleanToiletPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) @@ -184,13 +198,35 @@ switch (v.getId()) { case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude())); - loadingDialog.dismiss(); + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } + loadingDialog.dismiss(); } }, true); break; @@ -246,26 +282,48 @@ .forResult(PictureConfig.REQUEST_CAMERA); break; case R.id.signInButton: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); + + //打扫卫生签到 String toiletId = toiletIdView.getText().toString(); if (TextUtils.isEmpty(toiletId)) { ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); - + double longitude = aMapLocation.getLongitude(); + double latitude = aMapLocation.getLatitude(); String cleanTime = TimeOrDateUtil.timestampToDate(System.currentTimeMillis()); cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath, StringHelper.filterString(workContentView.getText().toString())); - } else { - ToastHelper.showToast("定位失败,无法签到", ToastHelper.WARING); } + loadingDialog.dismiss(); } }, true); break; @@ -275,7 +333,7 @@ private void showEditDialog(String tag) { if (tag.equals("自定义")) { QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context); - builder.setTitle("自定义工作内容") + builder.setTitle("工作内容") .setPlaceholder("请输入您此次的工作内容") .setInputType(InputType.TYPE_CLASS_TEXT) .addAction("取消", (dialog, index) -> dialog.dismiss()) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java index df6a3c9..bb2a79d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java @@ -185,7 +185,7 @@ String lng = bean.getPositionLng(); String lat = bean.getPositionLat(); if (TextUtils.isEmpty(lng) || TextUtils.isEmpty(lat)) { - Log.d(TAG, "案卷经纬度异常"); + Log.d(TAG, "经纬度异常"); } else { PointPersonBean personBean = new PointPersonBean(); personBean.setPersonName(bean.getName()); diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } 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 42028a8..5fdaf66 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,7 +3,6 @@ import android.app.Notification; import android.content.Context; import android.content.Intent; -import android.location.Location; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -16,6 +15,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; @@ -204,9 +204,9 @@ break; case Constant.UPLOAD_LOCATION: Log.d(TAG, "位置上报"); - Location location = (Location) msg.obj; + AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, - String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); + String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); break; case Constant.LOGIN_OUT: Log.d(TAG, "退出登录"); diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index b421b01..ef9de35 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -17,6 +18,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; @@ -116,21 +118,38 @@ @Override public void initData() { - double lng = getIntent().getDoubleExtra("lng", Constant.DEFAULT_LNG); - double lat = getIntent().getDoubleExtra("lat", Constant.DEFAULT_LAT); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - locationStreetView.setText("定位成功"); - } else { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } } }, false); - mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(18000); + mapView.setViewpointScaleAsync(12000); ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); //创建底图、并设置底图图层 @@ -139,11 +158,6 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - Point point = new Point(lng, lat, mapView.getSpatialReference()); - mapView.setViewpointCenterAsync(point, 1000);//标注到指定经纬度并放大地图显示 - //添加图片Marker - addPictureMarker(point); - uploadImagePresenter = new UploadImagePresenterImpl(this); cleanToiletPresenter = new CleanToiletPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) @@ -184,13 +198,35 @@ switch (v.getId()) { case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude())); - loadingDialog.dismiss(); + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } + loadingDialog.dismiss(); } }, true); break; @@ -246,26 +282,48 @@ .forResult(PictureConfig.REQUEST_CAMERA); break; case R.id.signInButton: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); + + //打扫卫生签到 String toiletId = toiletIdView.getText().toString(); if (TextUtils.isEmpty(toiletId)) { ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); - + double longitude = aMapLocation.getLongitude(); + double latitude = aMapLocation.getLatitude(); String cleanTime = TimeOrDateUtil.timestampToDate(System.currentTimeMillis()); cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath, StringHelper.filterString(workContentView.getText().toString())); - } else { - ToastHelper.showToast("定位失败,无法签到", ToastHelper.WARING); } + loadingDialog.dismiss(); } }, true); break; @@ -275,7 +333,7 @@ private void showEditDialog(String tag) { if (tag.equals("自定义")) { QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context); - builder.setTitle("自定义工作内容") + builder.setTitle("工作内容") .setPlaceholder("请输入您此次的工作内容") .setInputType(InputType.TYPE_CLASS_TEXT) .addAction("取消", (dialog, index) -> dialog.dismiss()) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java index df6a3c9..bb2a79d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java @@ -185,7 +185,7 @@ String lng = bean.getPositionLng(); String lat = bean.getPositionLat(); if (TextUtils.isEmpty(lng) || TextUtils.isEmpty(lat)) { - Log.d(TAG, "案卷经纬度异常"); + Log.d(TAG, "经纬度异常"); } else { PointPersonBean personBean = new PointPersonBean(); personBean.setPersonName(bean.getName()); 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 9f864db..d948e35 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,7 +9,7 @@ import java.util.List; public class Constant { - public static final String[] USER_PERMISSIONS = { + public static final String[] USER_PERMISSIONS = {Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, @@ -65,7 +65,7 @@ public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 - //正是环境 + //正式环境 // public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 // public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 // public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } 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 42028a8..5fdaf66 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,7 +3,6 @@ import android.app.Notification; import android.content.Context; import android.content.Intent; -import android.location.Location; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -16,6 +15,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; @@ -204,9 +204,9 @@ break; case Constant.UPLOAD_LOCATION: Log.d(TAG, "位置上报"); - Location location = (Location) msg.obj; + AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, - String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); + String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); break; case Constant.LOGIN_OUT: Log.d(TAG, "退出登录"); diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index b421b01..ef9de35 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -17,6 +18,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; @@ -116,21 +118,38 @@ @Override public void initData() { - double lng = getIntent().getDoubleExtra("lng", Constant.DEFAULT_LNG); - double lat = getIntent().getDoubleExtra("lat", Constant.DEFAULT_LAT); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - locationStreetView.setText("定位成功"); - } else { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } } }, false); - mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(18000); + mapView.setViewpointScaleAsync(12000); ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); //创建底图、并设置底图图层 @@ -139,11 +158,6 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - Point point = new Point(lng, lat, mapView.getSpatialReference()); - mapView.setViewpointCenterAsync(point, 1000);//标注到指定经纬度并放大地图显示 - //添加图片Marker - addPictureMarker(point); - uploadImagePresenter = new UploadImagePresenterImpl(this); cleanToiletPresenter = new CleanToiletPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) @@ -184,13 +198,35 @@ switch (v.getId()) { case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude())); - loadingDialog.dismiss(); + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } + loadingDialog.dismiss(); } }, true); break; @@ -246,26 +282,48 @@ .forResult(PictureConfig.REQUEST_CAMERA); break; case R.id.signInButton: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); + + //打扫卫生签到 String toiletId = toiletIdView.getText().toString(); if (TextUtils.isEmpty(toiletId)) { ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); - + double longitude = aMapLocation.getLongitude(); + double latitude = aMapLocation.getLatitude(); String cleanTime = TimeOrDateUtil.timestampToDate(System.currentTimeMillis()); cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath, StringHelper.filterString(workContentView.getText().toString())); - } else { - ToastHelper.showToast("定位失败,无法签到", ToastHelper.WARING); } + loadingDialog.dismiss(); } }, true); break; @@ -275,7 +333,7 @@ private void showEditDialog(String tag) { if (tag.equals("自定义")) { QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context); - builder.setTitle("自定义工作内容") + builder.setTitle("工作内容") .setPlaceholder("请输入您此次的工作内容") .setInputType(InputType.TYPE_CLASS_TEXT) .addAction("取消", (dialog, index) -> dialog.dismiss()) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java index df6a3c9..bb2a79d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java @@ -185,7 +185,7 @@ String lng = bean.getPositionLng(); String lat = bean.getPositionLat(); if (TextUtils.isEmpty(lng) || TextUtils.isEmpty(lat)) { - Log.d(TAG, "案卷经纬度异常"); + Log.d(TAG, "经纬度异常"); } else { PointPersonBean personBean = new PointPersonBean(); personBean.setPersonName(bean.getName()); 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 9f864db..d948e35 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,7 +9,7 @@ import java.util.List; public class Constant { - public static final String[] USER_PERMISSIONS = { + public static final String[] USER_PERMISSIONS = {Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, @@ -65,7 +65,7 @@ public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 - //正是环境 + //正式环境 // public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 // public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 // public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 diff --git a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java index 947535e..c69557a 100644 --- a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java @@ -7,9 +7,14 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import android.util.Log; import androidx.core.app.ActivityCompat; +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; +import com.amap.api.location.AMapLocationListener; import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; @@ -23,11 +28,53 @@ import java.util.Iterator; public class LocationHelper { + + private static final String TAG = "LocationHelper"; + /** - * 获取当前定位 + * 高德sdk定位 + */ + public static void obtainCurrentLocationByGD(Context context, ILocationListener listener, boolean isOnce) { + AMapLocationClient mLocationClient = new AMapLocationClient(context); + AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + mLocationOption.setNeedAddress(true);//设置是否返回地址信息(默认返回地址信息) + mLocationOption.setOnceLocation(isOnce);//设置是否只定位一次,默认为false + mLocationOption.setWifiActiveScan(true);//设置是否强制刷新WIFI,默认为强制刷新 + mLocationOption.setMockEnable(false);//设置是否允许模拟位置,默认为false,不允许模拟位置 + mLocationOption.setInterval(15000);//设置定位间隔,单位毫秒,默认为2000ms + mLocationOption.setWifiScan(true); //可选,设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差 + mLocationOption.setLocationCacheEnable(true); //可选,设置是否使用缓存定位,默认为true + //给定位客户端对象设置定位参数 + mLocationClient.setLocationOption(mLocationOption); + //设置定位回调监听 + mLocationClient.setLocationListener(new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation aMapLocation) { + if (aMapLocation != null) { + if (aMapLocation.getErrorCode() == 0) { + listener.onAMapLocationGet(aMapLocation); +// mLocationClient.stopLocation();//停止定位 + } else { + listener.onAMapLocationGet(null); + //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。 + Log.e(TAG, "location Error, ErrCode:" + aMapLocation.getErrorCode() + + ", errInfo:" + aMapLocation.getErrorInfo()); + } + } + } + }); + //启动定位 + mLocationClient.startLocation(); + } + + /** + * 原生GSP获取当前定位 */ public static void obtainCurrentLocation(Context context, ILocationListener listener, boolean isOnce) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } diff --git a/app/build.gradle b/app/build.gradle index 1cc4d59..479c061 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 12 - versionName "v1.0.0.4" + versionCode 13 + versionName "v1.0.0.5" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } @@ -96,4 +96,6 @@ implementation 'com.tencent.bugly:crashreport:3.3.92' //ZBar扫一扫(综合Java和C++扫码) implementation 'cn.bertsir.zbarLibary:zbarlibary:1.4.2' + //定位功能 + implementation 'com.amap.api:location:latest.integration' } diff --git a/app/dcms_key b/app/dcms_key deleted file mode 100644 index bcb2319..0000000 --- a/app/dcms_key +++ /dev/null Binary files differ diff --git a/app/dcms_key.jks b/app/dcms_key.jks new file mode 100644 index 0000000..bcb2319 --- /dev/null +++ b/app/dcms_key.jks Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92c60e5..02c6eb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,18 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.dcms"> + + + - - + + + @@ -151,6 +155,7 @@ android:resource="@xml/file_paths" /> + @@ -165,6 +170,14 @@ android:name=".service.GeTuiIntentService" android:permission="android.permission.BIND_JOB_SERVICE" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java index a7ff4f7..4758703 100644 --- a/app/src/main/java/com/casic/dcms/service/UploadLocationService.java +++ b/app/src/main/java/com/casic/dcms/service/UploadLocationService.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; +import com.amap.api.location.AMapLocation; import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -27,18 +28,23 @@ @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() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + Log.d(TAG, "onAMapLocationGet: UploadLocationService"); Message message = Message.obtain(); message.what = Constant.UPLOAD_LOCATION; - message.obj = location; + message.obj = aMapLocation; MainActivity.sendMessage(message); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 552cb77..c6ce5f6 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.PointFutureBean; @@ -384,11 +385,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()), 1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 0cd126c..a6dfcd9 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; @@ -141,11 +142,16 @@ break; case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude()),1000); + + } + + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation != null) { + mapView.setViewpointCenterAsync(new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude()), 1000); loadingDialog.dismiss(); } } 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 42028a8..5fdaf66 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,7 +3,6 @@ import android.app.Notification; import android.content.Context; import android.content.Intent; -import android.location.Location; import android.os.Build; import android.os.Handler; import android.os.Message; @@ -16,6 +15,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; @@ -204,9 +204,9 @@ break; case Constant.UPLOAD_LOCATION: Log.d(TAG, "位置上报"); - Location location = (Location) msg.obj; + AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, - String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); + String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); break; case Constant.LOGIN_OUT: Log.d(TAG, "退出登录"); diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index b421b01..ef9de35 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -17,6 +18,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.amap.api.location.AMapLocation; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; @@ -116,21 +118,38 @@ @Override public void initData() { - double lng = getIntent().getDoubleExtra("lng", Constant.DEFAULT_LNG); - double lat = getIntent().getDoubleExtra("lat", Constant.DEFAULT_LAT); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - locationStreetView.setText("定位成功"); - } else { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } } }, false); - mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(18000); + mapView.setViewpointScaleAsync(12000); ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); //创建底图、并设置底图图层 @@ -139,11 +158,6 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - Point point = new Point(lng, lat, mapView.getSpatialReference()); - mapView.setViewpointCenterAsync(point, 1000);//标注到指定经纬度并放大地图显示 - //添加图片Marker - addPictureMarker(point); - uploadImagePresenter = new UploadImagePresenterImpl(this); cleanToiletPresenter = new CleanToiletPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) @@ -184,13 +198,35 @@ switch (v.getId()) { case R.id.removeToLocalView: loadingDialog.show(); - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { - mapView.setViewpointCenterAsync(new Point(location.getLongitude(), location.getLatitude())); - loadingDialog.dismiss(); + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); } + loadingDialog.dismiss(); } }, true); break; @@ -246,26 +282,48 @@ .forResult(PictureConfig.REQUEST_CAMERA); break; case R.id.signInButton: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { - if (location != null) { + + } + + @SuppressLint("SetTextI18n") + @Override + public void onAMapLocationGet(AMapLocation aMapLocation) { + if (aMapLocation == null) { + locationStreetView.setText("定位失败"); + locationStreetView.setTextColor(Color.RED); + } else { + Point point = new Point(aMapLocation.getLongitude(), aMapLocation.getLatitude(), mapView.getSpatialReference()); + mapView.setViewpointCenterAsync(point, 1200);//标注到指定经纬度并放大地图显示 + //添加图片Marker + addPictureMarker(point); + + String address = aMapLocation.getAddress(); + if (TextUtils.isEmpty(address)) { + locationStreetView.setText(aMapLocation.getProvince() + + aMapLocation.getCity() + aMapLocation.getDistrict() + + aMapLocation.getStreet() + aMapLocation.getStreetNum()); + } else { + locationStreetView.setText(address); + } + locationStreetView.setTextColor(Color.BLUE); + + //打扫卫生签到 String toiletId = toiletIdView.getText().toString(); if (TextUtils.isEmpty(toiletId)) { ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); - + double longitude = aMapLocation.getLongitude(); + double latitude = aMapLocation.getLatitude(); String cleanTime = TimeOrDateUtil.timestampToDate(System.currentTimeMillis()); cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), String.valueOf(longitude), String.valueOf(latitude), cleanTime, imagePath, StringHelper.filterString(workContentView.getText().toString())); - } else { - ToastHelper.showToast("定位失败,无法签到", ToastHelper.WARING); } + loadingDialog.dismiss(); } }, true); break; @@ -275,7 +333,7 @@ private void showEditDialog(String tag) { if (tag.equals("自定义")) { QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context); - builder.setTitle("自定义工作内容") + builder.setTitle("工作内容") .setPlaceholder("请输入您此次的工作内容") .setInputType(InputType.TYPE_CLASS_TEXT) .addAction("取消", (dialog, index) -> dialog.dismiss()) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java index df6a3c9..bb2a79d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PersonOnMapFragment.java @@ -185,7 +185,7 @@ String lng = bean.getPositionLng(); String lat = bean.getPositionLat(); if (TextUtils.isEmpty(lng) || TextUtils.isEmpty(lat)) { - Log.d(TAG, "案卷经纬度异常"); + Log.d(TAG, "经纬度异常"); } else { PointPersonBean personBean = new PointPersonBean(); personBean.setPersonName(bean.getName()); 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 9f864db..d948e35 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,7 +9,7 @@ import java.util.List; public class Constant { - public static final String[] USER_PERMISSIONS = { + public static final String[] USER_PERMISSIONS = {Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, @@ -65,7 +65,7 @@ public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 - //正是环境 + //正式环境 // public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 // public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图 // public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 diff --git a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java index 947535e..c69557a 100644 --- a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java @@ -7,9 +7,14 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import android.util.Log; import androidx.core.app.ActivityCompat; +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; +import com.amap.api.location.AMapLocationListener; import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; @@ -23,11 +28,53 @@ import java.util.Iterator; public class LocationHelper { + + private static final String TAG = "LocationHelper"; + /** - * 获取当前定位 + * 高德sdk定位 + */ + public static void obtainCurrentLocationByGD(Context context, ILocationListener listener, boolean isOnce) { + AMapLocationClient mLocationClient = new AMapLocationClient(context); + AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + mLocationOption.setNeedAddress(true);//设置是否返回地址信息(默认返回地址信息) + mLocationOption.setOnceLocation(isOnce);//设置是否只定位一次,默认为false + mLocationOption.setWifiActiveScan(true);//设置是否强制刷新WIFI,默认为强制刷新 + mLocationOption.setMockEnable(false);//设置是否允许模拟位置,默认为false,不允许模拟位置 + mLocationOption.setInterval(15000);//设置定位间隔,单位毫秒,默认为2000ms + mLocationOption.setWifiScan(true); //可选,设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差 + mLocationOption.setLocationCacheEnable(true); //可选,设置是否使用缓存定位,默认为true + //给定位客户端对象设置定位参数 + mLocationClient.setLocationOption(mLocationOption); + //设置定位回调监听 + mLocationClient.setLocationListener(new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation aMapLocation) { + if (aMapLocation != null) { + if (aMapLocation.getErrorCode() == 0) { + listener.onAMapLocationGet(aMapLocation); +// mLocationClient.stopLocation();//停止定位 + } else { + listener.onAMapLocationGet(null); + //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。 + Log.e(TAG, "location Error, ErrCode:" + aMapLocation.getErrorCode() + + ", errInfo:" + aMapLocation.getErrorInfo()); + } + } + } + }); + //启动定位 + mLocationClient.startLocation(); + } + + /** + * 原生GSP获取当前定位 */ public static void obtainCurrentLocation(Context context, ILocationListener listener, boolean isOnce) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } diff --git a/app/src/main/java/com/casic/dcms/utils/callback/ILocationListener.java b/app/src/main/java/com/casic/dcms/utils/callback/ILocationListener.java index 2c61981..0af1394 100644 --- a/app/src/main/java/com/casic/dcms/utils/callback/ILocationListener.java +++ b/app/src/main/java/com/casic/dcms/utils/callback/ILocationListener.java @@ -2,6 +2,10 @@ import android.location.Location; +import com.amap.api.location.AMapLocation; + public interface ILocationListener { - void onLocationGet(Location location); + void onLocationGet(Location location);//原生GPS定位数据 + + void onAMapLocationGet(AMapLocation aMapLocation);//高德定位数据 }