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()