diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 835033a..58cdafc 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -237,15 +237,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 835033a..58cdafc 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -237,15 +237,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt index 0971de5..d49ae68 100644 --- a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt @@ -1,17 +1,23 @@ package com.casic.birmm.inspect.service +import android.Manifest +import android.app.Activity import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.Service import android.content.Intent +import android.content.pm.PackageManager import android.os.Binder import android.os.Build import android.os.IBinder +import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat import com.amap.api.location.AMapLocation import com.amap.api.location.AMapLocationListener import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.LocationHub import com.pengxh.kt.lite.extensions.getSystemService @@ -35,7 +41,21 @@ /** * 开始定位 * */ - fun startLocation(listener: LocationHub.ILocationListener) { + fun startLocation(activity: Activity, listener: LocationHub.ILocationListener) { + //授权后台定位 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val checkSelfPermission = ContextCompat.checkSelfPermission( + this, Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + if (checkSelfPermission == PackageManager.PERMISSION_DENIED) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), + LocaleConstant.PERMISSIONS_CODE + ) + } + } + //开启通知,并申请成为前台服务 createForegroundNotification() diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 835033a..58cdafc 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -237,15 +237,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt index 0971de5..d49ae68 100644 --- a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt @@ -1,17 +1,23 @@ package com.casic.birmm.inspect.service +import android.Manifest +import android.app.Activity import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.Service import android.content.Intent +import android.content.pm.PackageManager import android.os.Binder import android.os.Build import android.os.IBinder +import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat import com.amap.api.location.AMapLocation import com.amap.api.location.AMapLocationListener import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.LocationHub import com.pengxh.kt.lite.extensions.getSystemService @@ -35,7 +41,21 @@ /** * 开始定位 * */ - fun startLocation(listener: LocationHub.ILocationListener) { + fun startLocation(activity: Activity, listener: LocationHub.ILocationListener) { + //授权后台定位 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val checkSelfPermission = ContextCompat.checkSelfPermission( + this, Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + if (checkSelfPermission == PackageManager.PERMISSION_DENIED) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), + LocaleConstant.PERMISSIONS_CODE + ) + } + } + //开启通知,并申请成为前台服务 createForegroundNotification() diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 2b25845..986aaf9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -184,15 +184,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 835033a..58cdafc 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -237,15 +237,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt index 0971de5..d49ae68 100644 --- a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt @@ -1,17 +1,23 @@ package com.casic.birmm.inspect.service +import android.Manifest +import android.app.Activity import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.Service import android.content.Intent +import android.content.pm.PackageManager import android.os.Binder import android.os.Build import android.os.IBinder +import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat import com.amap.api.location.AMapLocation import com.amap.api.location.AMapLocationListener import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.LocationHub import com.pengxh.kt.lite.extensions.getSystemService @@ -35,7 +41,21 @@ /** * 开始定位 * */ - fun startLocation(listener: LocationHub.ILocationListener) { + fun startLocation(activity: Activity, listener: LocationHub.ILocationListener) { + //授权后台定位 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val checkSelfPermission = ContextCompat.checkSelfPermission( + this, Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + if (checkSelfPermission == PackageManager.PERMISSION_DENIED) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), + LocaleConstant.PERMISSIONS_CODE + ) + } + } + //开启通知,并申请成为前台服务 createForegroundNotification() diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 2b25845..986aaf9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -184,15 +184,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt index d5084bf..cf891cd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt @@ -1,7 +1,5 @@ package com.casic.birmm.inspect.single.view -import android.Manifest -import android.os.Build import android.os.Bundle import android.view.KeyEvent import android.view.MenuItem @@ -14,15 +12,12 @@ import com.casic.birmm.inspect.single.fragment.DataLogPageFragment import com.casic.birmm.inspect.single.fragment.HomePageFragment import com.casic.birmm.inspect.single.fragment.SettingPageFragment -import com.casic.birmm.inspect.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager -import pub.devrel.easypermissions.EasyPermissions -class MainActivity : KotlinBaseActivity(), - EasyPermissions.PermissionCallbacks { +class MainActivity : KotlinBaseActivity() { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -37,18 +32,6 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - if (!EasyPermissions.hasPermissions( - this, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) { - EasyPermissions.requestPermissions( - this, resources.getString(R.string.app_name) + "需要获取后台定位权限", - LocaleConstant.PERMISSIONS_CODE, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - } - } - MapsInitializer.updatePrivacyShow(this, true, true) MapsInitializer.updatePrivacyAgree(this, true) @@ -124,19 +107,4 @@ } } else super.onKeyDown(keyCode, event) } - - override fun onRequestPermissionsResult( - requestCode: Int, permissions: Array, grantResults: IntArray - ) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this) - } - - override fun onPermissionsGranted(requestCode: Int, perms: MutableList) { - - } - - override fun onPermissionsDenied(requestCode: Int, perms: MutableList) { - - } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 835033a..58cdafc 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -237,15 +237,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt index 0971de5..d49ae68 100644 --- a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt @@ -1,17 +1,23 @@ package com.casic.birmm.inspect.service +import android.Manifest +import android.app.Activity import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.Service import android.content.Intent +import android.content.pm.PackageManager import android.os.Binder import android.os.Build import android.os.IBinder +import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat import com.amap.api.location.AMapLocation import com.amap.api.location.AMapLocationListener import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.LocationHub import com.pengxh.kt.lite.extensions.getSystemService @@ -35,7 +41,21 @@ /** * 开始定位 * */ - fun startLocation(listener: LocationHub.ILocationListener) { + fun startLocation(activity: Activity, listener: LocationHub.ILocationListener) { + //授权后台定位 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val checkSelfPermission = ContextCompat.checkSelfPermission( + this, Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + if (checkSelfPermission == PackageManager.PERMISSION_DENIED) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), + LocaleConstant.PERMISSIONS_CODE + ) + } + } + //开启通知,并申请成为前台服务 createForegroundNotification() diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 2b25845..986aaf9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -184,15 +184,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt index d5084bf..cf891cd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt @@ -1,7 +1,5 @@ package com.casic.birmm.inspect.single.view -import android.Manifest -import android.os.Build import android.os.Bundle import android.view.KeyEvent import android.view.MenuItem @@ -14,15 +12,12 @@ import com.casic.birmm.inspect.single.fragment.DataLogPageFragment import com.casic.birmm.inspect.single.fragment.HomePageFragment import com.casic.birmm.inspect.single.fragment.SettingPageFragment -import com.casic.birmm.inspect.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager -import pub.devrel.easypermissions.EasyPermissions -class MainActivity : KotlinBaseActivity(), - EasyPermissions.PermissionCallbacks { +class MainActivity : KotlinBaseActivity() { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -37,18 +32,6 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - if (!EasyPermissions.hasPermissions( - this, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) { - EasyPermissions.requestPermissions( - this, resources.getString(R.string.app_name) + "需要获取后台定位权限", - LocaleConstant.PERMISSIONS_CODE, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - } - } - MapsInitializer.updatePrivacyShow(this, true, true) MapsInitializer.updatePrivacyAgree(this, true) @@ -124,19 +107,4 @@ } } else super.onKeyDown(keyCode, event) } - - override fun onRequestPermissionsResult( - requestCode: Int, permissions: Array, grantResults: IntArray - ) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this) - } - - override fun onPermissionsGranted(requestCode: Int, perms: MutableList) { - - } - - override fun onPermissionsDenied(requestCode: Int, perms: MutableList) { - - } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 3cc6ab8..9d4dc27 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -29,7 +29,6 @@ arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, Manifest.permission.BLUETOOTH_CONNECT, @@ -43,7 +42,6 @@ arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, Manifest.permission.CAMERA, diff --git a/app/build.gradle b/app/build.gradle index 5009426..cb85597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ applicationId "com.casic.birmm.inspect" minSdkVersion 23 targetSdkVersion 33 - versionCode 1073 - versionName "1.0.7.3" + versionCode 1074 + versionName "1.0.7.4" } buildTypes { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 835033a..58cdafc 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -237,15 +237,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt index 0971de5..d49ae68 100644 --- a/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt +++ b/app/src/main/java/com/casic/birmm/inspect/service/LocationService.kt @@ -1,17 +1,23 @@ package com.casic.birmm.inspect.service +import android.Manifest +import android.app.Activity import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.Service import android.content.Intent +import android.content.pm.PackageManager import android.os.Binder import android.os.Build import android.os.IBinder +import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat import com.amap.api.location.AMapLocation import com.amap.api.location.AMapLocationListener import com.casic.birmm.inspect.R +import com.casic.birmm.inspect.utils.LocaleConstant import com.casic.birmm.inspect.utils.LocationHub import com.pengxh.kt.lite.extensions.getSystemService @@ -35,7 +41,21 @@ /** * 开始定位 * */ - fun startLocation(listener: LocationHub.ILocationListener) { + fun startLocation(activity: Activity, listener: LocationHub.ILocationListener) { + //授权后台定位 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val checkSelfPermission = ContextCompat.checkSelfPermission( + this, Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + if (checkSelfPermission == PackageManager.PERMISSION_DENIED) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), + LocaleConstant.PERMISSIONS_CODE + ) + } + } + //开启通知,并申请成为前台服务 createForegroundNotification() diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 2b25845..986aaf9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -184,15 +184,16 @@ binding.stopInspectButton.isEnabled = true binding.addInspectionButton.isEnabled = false - locationService?.startLocation(object : LocationHub.ILocationListener { - override fun onAMapLocationGet(aMapLocation: AMapLocation) { - drawTaskRoute(aMapLocation) - } + locationService?.startLocation(requireActivity(), + object : LocationHub.ILocationListener { + override fun onAMapLocationGet(aMapLocation: AMapLocation) { + drawTaskRoute(aMapLocation) + } - override fun onAMapLocationError() { - "当前信号弱,无法定位".show(requireContext()) - } - }) + override fun onAMapLocationError() { + "当前信号弱,无法定位".show(requireContext()) + } + }) } override fun onCancelClick() { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt index d5084bf..cf891cd 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/MainActivity.kt @@ -1,7 +1,5 @@ package com.casic.birmm.inspect.single.view -import android.Manifest -import android.os.Build import android.os.Bundle import android.view.KeyEvent import android.view.MenuItem @@ -14,15 +12,12 @@ import com.casic.birmm.inspect.single.fragment.DataLogPageFragment import com.casic.birmm.inspect.single.fragment.HomePageFragment import com.casic.birmm.inspect.single.fragment.SettingPageFragment -import com.casic.birmm.inspect.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager -import pub.devrel.easypermissions.EasyPermissions -class MainActivity : KotlinBaseActivity(), - EasyPermissions.PermissionCallbacks { +class MainActivity : KotlinBaseActivity() { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -37,18 +32,6 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - if (!EasyPermissions.hasPermissions( - this, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) { - EasyPermissions.requestPermissions( - this, resources.getString(R.string.app_name) + "需要获取后台定位权限", - LocaleConstant.PERMISSIONS_CODE, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - } - } - MapsInitializer.updatePrivacyShow(this, true, true) MapsInitializer.updatePrivacyAgree(this, true) @@ -124,19 +107,4 @@ } } else super.onKeyDown(keyCode, event) } - - override fun onRequestPermissionsResult( - requestCode: Int, permissions: Array, grantResults: IntArray - ) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this) - } - - override fun onPermissionsGranted(requestCode: Int, perms: MutableList) { - - } - - override fun onPermissionsDenied(requestCode: Int, perms: MutableList) { - - } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 3cc6ab8..9d4dc27 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -29,7 +29,6 @@ arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, Manifest.permission.BLUETOOTH_CONNECT, @@ -43,7 +42,6 @@ arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, Manifest.permission.CAMERA, diff --git a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt index fd2c293..219ae27 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/MainActivity.kt @@ -1,7 +1,5 @@ package com.casic.birmm.inspect.view -import android.Manifest -import android.os.Build import android.os.Bundle import android.view.KeyEvent import android.view.MenuItem @@ -14,15 +12,12 @@ import com.casic.birmm.inspect.fragment.DataLogPageFragment import com.casic.birmm.inspect.fragment.HomePageFragment import com.casic.birmm.inspect.fragment.SettingPageFragment -import com.casic.birmm.inspect.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager -import pub.devrel.easypermissions.EasyPermissions -class MainActivity : KotlinBaseActivity(), - EasyPermissions.PermissionCallbacks { +class MainActivity : KotlinBaseActivity() { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -37,18 +32,6 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - if (!EasyPermissions.hasPermissions( - this, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) { - EasyPermissions.requestPermissions( - this, resources.getString(R.string.app_name) + "需要获取后台定位权限", - LocaleConstant.PERMISSIONS_CODE, Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - } - } - MapsInitializer.updatePrivacyShow(this, true, true) MapsInitializer.updatePrivacyAgree(this, true) @@ -124,19 +107,4 @@ } } else super.onKeyDown(keyCode, event) } - - override fun onRequestPermissionsResult( - requestCode: Int, permissions: Array, grantResults: IntArray - ) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this) - } - - override fun onPermissionsGranted(requestCode: Int, perms: MutableList) { - - } - - override fun onPermissionsDenied(requestCode: Int, perms: MutableList) { - - } } \ No newline at end of file