diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - 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 13b752f..835033a 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 @@ -602,14 +602,23 @@ * 如果保存到本地,则需要设置标识位,然后finish当前页面并提示 * */ val routes = newModel.routes - for (i in 0 until routes.size) { - //上传点位 - routeViewModel.uploadRoutePoint( - newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() - ) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + for (i in 0 until routes.size) { + //上传点位 + routeViewModel.uploadRoutePoint( + newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() + ) + } val first = routes.first val last = routes.last routes.calculateDistance(object : OnDistanceSearchListener { @@ -632,9 +641,6 @@ ) } }) - } catch (e: NoSuchElementException) { - e.printStackTrace() - "无定位数据,保存任务失败".show(requireContext()) } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - 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 13b752f..835033a 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 @@ -602,14 +602,23 @@ * 如果保存到本地,则需要设置标识位,然后finish当前页面并提示 * */ val routes = newModel.routes - for (i in 0 until routes.size) { - //上传点位 - routeViewModel.uploadRoutePoint( - newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() - ) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + for (i in 0 until routes.size) { + //上传点位 + routeViewModel.uploadRoutePoint( + newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() + ) + } val first = routes.first val last = routes.last routes.calculateDistance(object : OnDistanceSearchListener { @@ -632,9 +641,6 @@ ) } }) - } catch (e: NoSuchElementException) { - e.printStackTrace() - "无定位数据,保存任务失败".show(requireContext()) } } 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 76c7846..2b25845 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 @@ -551,14 +551,23 @@ LoadingDialogHub.show(requireActivity(), "数据保存中,请稍后...") val routes = newModel.routes - // 保存巡检位置点 - lifecycleScope.launch(Dispatchers.Main) { - withContext(Dispatchers.IO) { - for (i in 0 until routes.size) { - DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + // 保存巡检位置点 + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + for (i in 0 until routes.size) { + DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) + } val first = routes.first val last = routes.last DataBaseManager.get.addInspection( @@ -576,28 +585,23 @@ endAddress = newModel.endAddress, routes = newModel.routes ) - } catch (e: NoSuchElementException) { - e.printStackTrace() - withContext(Dispatchers.Main) { - "无定位数据,保存任务失败".show(requireContext()) - } } + LoadingDialogHub.dismiss() + + //清空newModel + newModel.clearCache() + + //停止定位 + locationService?.stopLocation() + + //结束任务就清空轨迹 + latLngList.clear() + aMap.clear() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true } - LoadingDialogHub.dismiss() - - //清空newModel - newModel.clearCache() - - //停止定位 - locationService?.stopLocation() - - //结束任务就清空轨迹 - latLngList.clear() - aMap.clear() - - //按钮状态 - binding.stopInspectButton.isEnabled = false - binding.addInspectionButton.isEnabled = true } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - 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 13b752f..835033a 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 @@ -602,14 +602,23 @@ * 如果保存到本地,则需要设置标识位,然后finish当前页面并提示 * */ val routes = newModel.routes - for (i in 0 until routes.size) { - //上传点位 - routeViewModel.uploadRoutePoint( - newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() - ) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + for (i in 0 until routes.size) { + //上传点位 + routeViewModel.uploadRoutePoint( + newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() + ) + } val first = routes.first val last = routes.last routes.calculateDistance(object : OnDistanceSearchListener { @@ -632,9 +641,6 @@ ) } }) - } catch (e: NoSuchElementException) { - e.printStackTrace() - "无定位数据,保存任务失败".show(requireContext()) } } 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 76c7846..2b25845 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 @@ -551,14 +551,23 @@ LoadingDialogHub.show(requireActivity(), "数据保存中,请稍后...") val routes = newModel.routes - // 保存巡检位置点 - lifecycleScope.launch(Dispatchers.Main) { - withContext(Dispatchers.IO) { - for (i in 0 until routes.size) { - DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + // 保存巡检位置点 + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + for (i in 0 until routes.size) { + DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) + } val first = routes.first val last = routes.last DataBaseManager.get.addInspection( @@ -576,28 +585,23 @@ endAddress = newModel.endAddress, routes = newModel.routes ) - } catch (e: NoSuchElementException) { - e.printStackTrace() - withContext(Dispatchers.Main) { - "无定位数据,保存任务失败".show(requireContext()) - } } + LoadingDialogHub.dismiss() + + //清空newModel + newModel.clearCache() + + //停止定位 + locationService?.stopLocation() + + //结束任务就清空轨迹 + latLngList.clear() + aMap.clear() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true } - LoadingDialogHub.dismiss() - - //清空newModel - newModel.clearCache() - - //停止定位 - locationService?.stopLocation() - - //结束任务就清空轨迹 - latLngList.clear() - aMap.clear() - - //按钮状态 - binding.stopInspectButton.isEnabled = false - binding.addInspectionButton.isEnabled = true } } 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 cf891cd..d5084bf 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,5 +1,7 @@ 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 @@ -12,12 +14,15 @@ 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() { +class MainActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -32,6 +37,18 @@ 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) @@ -107,4 +124,19 @@ } } 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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - 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 13b752f..835033a 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 @@ -602,14 +602,23 @@ * 如果保存到本地,则需要设置标识位,然后finish当前页面并提示 * */ val routes = newModel.routes - for (i in 0 until routes.size) { - //上传点位 - routeViewModel.uploadRoutePoint( - newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() - ) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + for (i in 0 until routes.size) { + //上传点位 + routeViewModel.uploadRoutePoint( + newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() + ) + } val first = routes.first val last = routes.last routes.calculateDistance(object : OnDistanceSearchListener { @@ -632,9 +641,6 @@ ) } }) - } catch (e: NoSuchElementException) { - e.printStackTrace() - "无定位数据,保存任务失败".show(requireContext()) } } 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 76c7846..2b25845 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 @@ -551,14 +551,23 @@ LoadingDialogHub.show(requireActivity(), "数据保存中,请稍后...") val routes = newModel.routes - // 保存巡检位置点 - lifecycleScope.launch(Dispatchers.Main) { - withContext(Dispatchers.IO) { - for (i in 0 until routes.size) { - DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + // 保存巡检位置点 + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + for (i in 0 until routes.size) { + DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) + } val first = routes.first val last = routes.last DataBaseManager.get.addInspection( @@ -576,28 +585,23 @@ endAddress = newModel.endAddress, routes = newModel.routes ) - } catch (e: NoSuchElementException) { - e.printStackTrace() - withContext(Dispatchers.Main) { - "无定位数据,保存任务失败".show(requireContext()) - } } + LoadingDialogHub.dismiss() + + //清空newModel + newModel.clearCache() + + //停止定位 + locationService?.stopLocation() + + //结束任务就清空轨迹 + latLngList.clear() + aMap.clear() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true } - LoadingDialogHub.dismiss() - - //清空newModel - newModel.clearCache() - - //停止定位 - locationService?.stopLocation() - - //结束任务就清空轨迹 - latLngList.clear() - aMap.clear() - - //按钮状态 - binding.stopInspectButton.isEnabled = false - binding.addInspectionButton.isEnabled = true } } 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 cf891cd..d5084bf 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,5 +1,7 @@ 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 @@ -12,12 +14,15 @@ 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() { +class MainActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -32,6 +37,18 @@ 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) @@ -107,4 +124,19 @@ } } 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 d6bbff1..3cc6ab8 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 @@ -12,16 +12,12 @@ * */ val USER_PERMISSIONS = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.MANAGE_EXTERNAL_STORAGE, @@ -31,16 +27,13 @@ ) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -48,14 +41,11 @@ ) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -63,13 +53,10 @@ ) } else { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, - Manifest.permission.BLUETOOTH, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE @@ -110,7 +97,8 @@ * Int * ============================================================================================= * */ - const val PERMISSIONS_CODE = 999 + //requestCode – request code to track this request, must be < 256. + const val PERMISSIONS_CODE = 1 const val PAGE_LIMIT = 10 const val BLUETOOTH_OFF = 21 const val LOAD_INSPECTION = 32 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - 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 13b752f..835033a 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 @@ -602,14 +602,23 @@ * 如果保存到本地,则需要设置标识位,然后finish当前页面并提示 * */ val routes = newModel.routes - for (i in 0 until routes.size) { - //上传点位 - routeViewModel.uploadRoutePoint( - newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() - ) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + for (i in 0 until routes.size) { + //上传点位 + routeViewModel.uploadRoutePoint( + newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() + ) + } val first = routes.first val last = routes.last routes.calculateDistance(object : OnDistanceSearchListener { @@ -632,9 +641,6 @@ ) } }) - } catch (e: NoSuchElementException) { - e.printStackTrace() - "无定位数据,保存任务失败".show(requireContext()) } } 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 76c7846..2b25845 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 @@ -551,14 +551,23 @@ LoadingDialogHub.show(requireActivity(), "数据保存中,请稍后...") val routes = newModel.routes - // 保存巡检位置点 - lifecycleScope.launch(Dispatchers.Main) { - withContext(Dispatchers.IO) { - for (i in 0 until routes.size) { - DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + // 保存巡检位置点 + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + for (i in 0 until routes.size) { + DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) + } val first = routes.first val last = routes.last DataBaseManager.get.addInspection( @@ -576,28 +585,23 @@ endAddress = newModel.endAddress, routes = newModel.routes ) - } catch (e: NoSuchElementException) { - e.printStackTrace() - withContext(Dispatchers.Main) { - "无定位数据,保存任务失败".show(requireContext()) - } } + LoadingDialogHub.dismiss() + + //清空newModel + newModel.clearCache() + + //停止定位 + locationService?.stopLocation() + + //结束任务就清空轨迹 + latLngList.clear() + aMap.clear() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true } - LoadingDialogHub.dismiss() - - //清空newModel - newModel.clearCache() - - //停止定位 - locationService?.stopLocation() - - //结束任务就清空轨迹 - latLngList.clear() - aMap.clear() - - //按钮状态 - binding.stopInspectButton.isEnabled = false - binding.addInspectionButton.isEnabled = true } } 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 cf891cd..d5084bf 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,5 +1,7 @@ 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 @@ -12,12 +14,15 @@ 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() { +class MainActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -32,6 +37,18 @@ 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) @@ -107,4 +124,19 @@ } } 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 d6bbff1..3cc6ab8 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 @@ -12,16 +12,12 @@ * */ val USER_PERMISSIONS = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.MANAGE_EXTERNAL_STORAGE, @@ -31,16 +27,13 @@ ) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -48,14 +41,11 @@ ) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -63,13 +53,10 @@ ) } else { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, - Manifest.permission.BLUETOOTH, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE @@ -110,7 +97,8 @@ * Int * ============================================================================================= * */ - const val PERMISSIONS_CODE = 999 + //requestCode – request code to track this request, must be < 256. + const val PERMISSIONS_CODE = 1 const val PAGE_LIMIT = 10 const val BLUETOOTH_OFF = 21 const val LOAD_INSPECTION = 32 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 219ae27..fd2c293 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,5 +1,7 @@ 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 @@ -12,12 +14,15 @@ 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() { +class MainActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -32,6 +37,18 @@ 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) @@ -107,4 +124,19 @@ } } 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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8b3cee..5fd46c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,35 +11,33 @@ - + + + - - - - + + + + + + + + - - - - - - - - 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 13b752f..835033a 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 @@ -602,14 +602,23 @@ * 如果保存到本地,则需要设置标识位,然后finish当前页面并提示 * */ val routes = newModel.routes - for (i in 0 until routes.size) { - //上传点位 - routeViewModel.uploadRoutePoint( - newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() - ) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + for (i in 0 until routes.size) { + //上传点位 + routeViewModel.uploadRoutePoint( + newModel.id, routes[i], System.currentTimeMillis().timestampToCompleteDate() + ) + } val first = routes.first val last = routes.last routes.calculateDistance(object : OnDistanceSearchListener { @@ -632,9 +641,6 @@ ) } }) - } catch (e: NoSuchElementException) { - e.printStackTrace() - "无定位数据,保存任务失败".show(requireContext()) } } 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 76c7846..2b25845 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 @@ -551,14 +551,23 @@ LoadingDialogHub.show(requireActivity(), "数据保存中,请稍后...") val routes = newModel.routes - // 保存巡检位置点 - lifecycleScope.launch(Dispatchers.Main) { - withContext(Dispatchers.IO) { - for (i in 0 until routes.size) { - DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) - } + if (routes == null) { + LoadingDialogHub.dismiss() - try { + //停止定位 + locationService?.stopLocation() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true + "无定位数据,保存任务失败".show(requireContext()) + } else { + // 保存巡检位置点 + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + for (i in 0 until routes.size) { + DataBaseManager.get.addInspectionRoute(newModel.id, routes[i]) + } val first = routes.first val last = routes.last DataBaseManager.get.addInspection( @@ -576,28 +585,23 @@ endAddress = newModel.endAddress, routes = newModel.routes ) - } catch (e: NoSuchElementException) { - e.printStackTrace() - withContext(Dispatchers.Main) { - "无定位数据,保存任务失败".show(requireContext()) - } } + LoadingDialogHub.dismiss() + + //清空newModel + newModel.clearCache() + + //停止定位 + locationService?.stopLocation() + + //结束任务就清空轨迹 + latLngList.clear() + aMap.clear() + + //按钮状态 + binding.stopInspectButton.isEnabled = false + binding.addInspectionButton.isEnabled = true } - LoadingDialogHub.dismiss() - - //清空newModel - newModel.clearCache() - - //停止定位 - locationService?.stopLocation() - - //结束任务就清空轨迹 - latLngList.clear() - aMap.clear() - - //按钮状态 - binding.stopInspectButton.isEnabled = false - binding.addInspectionButton.isEnabled = true } } 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 cf891cd..d5084bf 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,5 +1,7 @@ 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 @@ -12,12 +14,15 @@ 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() { +class MainActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -32,6 +37,18 @@ 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) @@ -107,4 +124,19 @@ } } 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 d6bbff1..3cc6ab8 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 @@ -12,16 +12,12 @@ * */ val USER_PERMISSIONS = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.MANAGE_EXTERNAL_STORAGE, @@ -31,16 +27,13 @@ ) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, Manifest.permission.BLUETOOTH_CONNECT, Manifest.permission.BLUETOOTH_SCAN, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -48,14 +41,11 @@ ) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 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, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -63,13 +53,10 @@ ) } else { arrayOf( - Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, - Manifest.permission.BLUETOOTH, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE @@ -110,7 +97,8 @@ * Int * ============================================================================================= * */ - const val PERMISSIONS_CODE = 999 + //requestCode – request code to track this request, must be < 256. + const val PERMISSIONS_CODE = 1 const val PAGE_LIMIT = 10 const val BLUETOOTH_OFF = 21 const val LOAD_INSPECTION = 32 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 219ae27..fd2c293 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,5 +1,7 @@ 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 @@ -12,12 +14,15 @@ 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() { +class MainActivity : KotlinBaseActivity(), + EasyPermissions.PermissionCallbacks { private var clickTime: Long = 0 private var menuItem: MenuItem? = null @@ -32,6 +37,18 @@ 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) @@ -107,4 +124,19 @@ } } 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/view/PermissionActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/PermissionActivity.kt index bf2e7e3..f34fe85 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/PermissionActivity.kt @@ -18,7 +18,6 @@ private val countDownTimer = object : CountDownTimer(2000, 500) { override fun onFinish() { navigatePageTo() -// navigatePageTo() finish() } @@ -61,7 +60,6 @@ if (isFirstEnter) { SaveKeyValues.putValue("isFirstEnter", false) navigatePageTo() -// navigatePageTo() finish() } else { countDownTimer.start()