diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt deleted file mode 100644 index e1d2ed3..0000000 --- a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.app.smartwell.view - -import android.os.Bundle -import com.amap.api.maps.AMap -import com.amap.api.maps.AMapOptions -import com.amap.api.maps.CameraUpdateFactory -import com.casic.app.smartwell.R -import com.casic.app.smartwell.base.BaseActivity -import kotlinx.android.synthetic.main.activity_map_navigation.* -import kotlinx.coroutines.cancel - -class MapNavigatorActivity : BaseActivity() { - - private lateinit var aMap: AMap - - override fun initLayoutView(): Int = R.layout.activity_map_navigation - - override fun setupTopBarLayout() { - - } - - override fun initData() { -// mapView.onCreate() - aMap = mapView.map - val uiSettings = aMap.uiSettings - uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) - } - - override fun initEvent() { - - } - - /***以下是地图生命周期管理************************************************************************/ - - override fun onResume() { - super.onResume() - mapView.onResume() - } - - override fun onPause() { - super.onPause() - mapView.onPause() - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) - } - - override fun onDestroy() { - cancel() - super.onDestroy() - mapView.onDestroy() - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt deleted file mode 100644 index e1d2ed3..0000000 --- a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.app.smartwell.view - -import android.os.Bundle -import com.amap.api.maps.AMap -import com.amap.api.maps.AMapOptions -import com.amap.api.maps.CameraUpdateFactory -import com.casic.app.smartwell.R -import com.casic.app.smartwell.base.BaseActivity -import kotlinx.android.synthetic.main.activity_map_navigation.* -import kotlinx.coroutines.cancel - -class MapNavigatorActivity : BaseActivity() { - - private lateinit var aMap: AMap - - override fun initLayoutView(): Int = R.layout.activity_map_navigation - - override fun setupTopBarLayout() { - - } - - override fun initData() { -// mapView.onCreate() - aMap = mapView.map - val uiSettings = aMap.uiSettings - uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) - } - - override fun initEvent() { - - } - - /***以下是地图生命周期管理************************************************************************/ - - override fun onResume() { - super.onResume() - mapView.onResume() - } - - override fun onPause() { - super.onPause() - mapView.onPause() - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) - } - - override fun onDestroy() { - cancel() - super.onDestroy() - mapView.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt index 56eb290..c509041 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.amap.api.navi.NaviSetting import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.utils.Constant import pub.devrel.easypermissions.EasyPermissions @@ -30,6 +31,9 @@ } private fun startSplashScreenActivity() { + //先把导航隐私政策声明,后面导航会用到 + NaviSetting.updatePrivacyShow(this, true, true) + NaviSetting.updatePrivacyAgree(this, true) this.navigatePageTo(SplashScreenActivity::class.java) finish() } diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt deleted file mode 100644 index e1d2ed3..0000000 --- a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.app.smartwell.view - -import android.os.Bundle -import com.amap.api.maps.AMap -import com.amap.api.maps.AMapOptions -import com.amap.api.maps.CameraUpdateFactory -import com.casic.app.smartwell.R -import com.casic.app.smartwell.base.BaseActivity -import kotlinx.android.synthetic.main.activity_map_navigation.* -import kotlinx.coroutines.cancel - -class MapNavigatorActivity : BaseActivity() { - - private lateinit var aMap: AMap - - override fun initLayoutView(): Int = R.layout.activity_map_navigation - - override fun setupTopBarLayout() { - - } - - override fun initData() { -// mapView.onCreate() - aMap = mapView.map - val uiSettings = aMap.uiSettings - uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) - } - - override fun initEvent() { - - } - - /***以下是地图生命周期管理************************************************************************/ - - override fun onResume() { - super.onResume() - mapView.onResume() - } - - override fun onPause() { - super.onPause() - mapView.onPause() - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) - } - - override fun onDestroy() { - cancel() - super.onDestroy() - mapView.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt index 56eb290..c509041 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.amap.api.navi.NaviSetting import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.utils.Constant import pub.devrel.easypermissions.EasyPermissions @@ -30,6 +31,9 @@ } private fun startSplashScreenActivity() { + //先把导航隐私政策声明,后面导航会用到 + NaviSetting.updatePrivacyShow(this, true, true) + NaviSetting.updatePrivacyAgree(this, true) this.navigatePageTo(SplashScreenActivity::class.java) finish() } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cae5baf..43a6620 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -5,16 +5,14 @@ import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.Poi -import com.amap.api.navi.AmapNaviPage -import com.amap.api.navi.AmapNaviParams -import com.amap.api.navi.AmapNaviType -import com.amap.api.navi.AmapPageType +import com.amap.api.navi.* import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ImageRecyclerViewAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.combineImagePath import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState @@ -23,6 +21,7 @@ import kotlinx.android.synthetic.main.activity_well_detail.* import kotlinx.android.synthetic.main.include_base_title.* + class WellDetailActivity : BaseActivity() { private lateinit var wellDetailViewModel: WellDetailViewModel @@ -103,18 +102,17 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { -// this.navigatePageTo(MapNavigatorActivity::class.java, wellId) - val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - val endPoi = Poi( + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), "" - ) - val params = - AmapNaviParams(null, null, endPoi, AmapNaviType.DRIVER, AmapPageType.ROUTE) - AmapNaviPage.getInstance().showRouteActivity(this, params, null) + ).showRouteOnMap(this) } } }) diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt deleted file mode 100644 index e1d2ed3..0000000 --- a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.app.smartwell.view - -import android.os.Bundle -import com.amap.api.maps.AMap -import com.amap.api.maps.AMapOptions -import com.amap.api.maps.CameraUpdateFactory -import com.casic.app.smartwell.R -import com.casic.app.smartwell.base.BaseActivity -import kotlinx.android.synthetic.main.activity_map_navigation.* -import kotlinx.coroutines.cancel - -class MapNavigatorActivity : BaseActivity() { - - private lateinit var aMap: AMap - - override fun initLayoutView(): Int = R.layout.activity_map_navigation - - override fun setupTopBarLayout() { - - } - - override fun initData() { -// mapView.onCreate() - aMap = mapView.map - val uiSettings = aMap.uiSettings - uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) - } - - override fun initEvent() { - - } - - /***以下是地图生命周期管理************************************************************************/ - - override fun onResume() { - super.onResume() - mapView.onResume() - } - - override fun onPause() { - super.onPause() - mapView.onPause() - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) - } - - override fun onDestroy() { - cancel() - super.onDestroy() - mapView.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt index 56eb290..c509041 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.amap.api.navi.NaviSetting import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.utils.Constant import pub.devrel.easypermissions.EasyPermissions @@ -30,6 +31,9 @@ } private fun startSplashScreenActivity() { + //先把导航隐私政策声明,后面导航会用到 + NaviSetting.updatePrivacyShow(this, true, true) + NaviSetting.updatePrivacyAgree(this, true) this.navigatePageTo(SplashScreenActivity::class.java) finish() } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cae5baf..43a6620 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -5,16 +5,14 @@ import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.Poi -import com.amap.api.navi.AmapNaviPage -import com.amap.api.navi.AmapNaviParams -import com.amap.api.navi.AmapNaviType -import com.amap.api.navi.AmapPageType +import com.amap.api.navi.* import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ImageRecyclerViewAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.combineImagePath import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState @@ -23,6 +21,7 @@ import kotlinx.android.synthetic.main.activity_well_detail.* import kotlinx.android.synthetic.main.include_base_title.* + class WellDetailActivity : BaseActivity() { private lateinit var wellDetailViewModel: WellDetailViewModel @@ -103,18 +102,17 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { -// this.navigatePageTo(MapNavigatorActivity::class.java, wellId) - val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - val endPoi = Poi( + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), "" - ) - val params = - AmapNaviParams(null, null, endPoi, AmapNaviType.DRIVER, AmapPageType.ROUTE) - AmapNaviPage.getInstance().showRouteActivity(this, params, null) + ).showRouteOnMap(this) } } }) diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index 206bfa2..a3ce02e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -4,16 +4,18 @@ import android.os.Handler import android.os.Looper import android.os.Message -import android.util.Log import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.WellListAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.model.WellListModel import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellListViewModel @@ -153,7 +155,6 @@ private class WeakReferenceHandler(activity: WellManagementActivity) : Handler(Looper.getMainLooper()) { - private val kTag = "WeakReferenceHandler" private val reference: WeakReference = WeakReference(activity) @SuppressLint("NotifyDataSetChanged") @@ -183,7 +184,18 @@ } override fun onItemButtonClicked(position: Int) { - Log.d(kTag, "onItemButtonClicked: ") + val wellDetail = activity.dataBeans[position] + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(activity) + return + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(activity) } }) } diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt deleted file mode 100644 index e1d2ed3..0000000 --- a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.app.smartwell.view - -import android.os.Bundle -import com.amap.api.maps.AMap -import com.amap.api.maps.AMapOptions -import com.amap.api.maps.CameraUpdateFactory -import com.casic.app.smartwell.R -import com.casic.app.smartwell.base.BaseActivity -import kotlinx.android.synthetic.main.activity_map_navigation.* -import kotlinx.coroutines.cancel - -class MapNavigatorActivity : BaseActivity() { - - private lateinit var aMap: AMap - - override fun initLayoutView(): Int = R.layout.activity_map_navigation - - override fun setupTopBarLayout() { - - } - - override fun initData() { -// mapView.onCreate() - aMap = mapView.map - val uiSettings = aMap.uiSettings - uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) - } - - override fun initEvent() { - - } - - /***以下是地图生命周期管理************************************************************************/ - - override fun onResume() { - super.onResume() - mapView.onResume() - } - - override fun onPause() { - super.onPause() - mapView.onPause() - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) - } - - override fun onDestroy() { - cancel() - super.onDestroy() - mapView.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt index 56eb290..c509041 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.amap.api.navi.NaviSetting import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.utils.Constant import pub.devrel.easypermissions.EasyPermissions @@ -30,6 +31,9 @@ } private fun startSplashScreenActivity() { + //先把导航隐私政策声明,后面导航会用到 + NaviSetting.updatePrivacyShow(this, true, true) + NaviSetting.updatePrivacyAgree(this, true) this.navigatePageTo(SplashScreenActivity::class.java) finish() } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cae5baf..43a6620 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -5,16 +5,14 @@ import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.Poi -import com.amap.api.navi.AmapNaviPage -import com.amap.api.navi.AmapNaviParams -import com.amap.api.navi.AmapNaviType -import com.amap.api.navi.AmapPageType +import com.amap.api.navi.* import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ImageRecyclerViewAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.combineImagePath import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState @@ -23,6 +21,7 @@ import kotlinx.android.synthetic.main.activity_well_detail.* import kotlinx.android.synthetic.main.include_base_title.* + class WellDetailActivity : BaseActivity() { private lateinit var wellDetailViewModel: WellDetailViewModel @@ -103,18 +102,17 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { -// this.navigatePageTo(MapNavigatorActivity::class.java, wellId) - val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - val endPoi = Poi( + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), "" - ) - val params = - AmapNaviParams(null, null, endPoi, AmapNaviType.DRIVER, AmapPageType.ROUTE) - AmapNaviPage.getInstance().showRouteActivity(this, params, null) + ).showRouteOnMap(this) } } }) diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index 206bfa2..a3ce02e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -4,16 +4,18 @@ import android.os.Handler import android.os.Looper import android.os.Message -import android.util.Log import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.WellListAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.model.WellListModel import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellListViewModel @@ -153,7 +155,6 @@ private class WeakReferenceHandler(activity: WellManagementActivity) : Handler(Looper.getMainLooper()) { - private val kTag = "WeakReferenceHandler" private val reference: WeakReference = WeakReference(activity) @SuppressLint("NotifyDataSetChanged") @@ -183,7 +184,18 @@ } override fun onItemButtonClicked(position: Int) { - Log.d(kTag, "onItemButtonClicked: ") + val wellDetail = activity.dataBeans[position] + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(activity) + return + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(activity) } }) } diff --git a/app/src/main/res/layout/activity_map_navigation.xml b/app/src/main/res/layout/activity_map_navigation.xml deleted file mode 100644 index d9a0732..0000000 --- a/app/src/main/res/layout/activity_map_navigation.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e8e4769..a4224f0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' //基础依赖库 implementation 'com.github.AndroidCoderPeng:Android-library:1.6.0' //Google官方授权框架 @@ -76,4 +76,5 @@ implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航 implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + implementation 'com.amap.api:location:5.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ccffee..e206b5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,11 @@ + + @@ -40,7 +42,6 @@ - @@ -56,6 +57,8 @@ android:name="com.amap.api.v2.apikey" android:value="441d100d99e46a5d9e9a987832eba986" /> + + = Build.VERSION_CODES.Q) { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + } else { + arrayOf( + Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) + } const val PERMISSIONS_CODE = 999 const val PAGE_LIMIT = 20 diff --git a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt deleted file mode 100644 index e1d2ed3..0000000 --- a/app/src/main/java/com/casic/app/smartwell/view/MapNavigatorActivity.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.casic.app.smartwell.view - -import android.os.Bundle -import com.amap.api.maps.AMap -import com.amap.api.maps.AMapOptions -import com.amap.api.maps.CameraUpdateFactory -import com.casic.app.smartwell.R -import com.casic.app.smartwell.base.BaseActivity -import kotlinx.android.synthetic.main.activity_map_navigation.* -import kotlinx.coroutines.cancel - -class MapNavigatorActivity : BaseActivity() { - - private lateinit var aMap: AMap - - override fun initLayoutView(): Int = R.layout.activity_map_navigation - - override fun setupTopBarLayout() { - - } - - override fun initData() { -// mapView.onCreate() - aMap = mapView.map - val uiSettings = aMap.uiSettings - uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - aMap.moveCamera(CameraUpdateFactory.zoomTo(16.toFloat())) - } - - override fun initEvent() { - - } - - /***以下是地图生命周期管理************************************************************************/ - - override fun onResume() { - super.onResume() - mapView.onResume() - } - - override fun onPause() { - super.onPause() - mapView.onPause() - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - mapView.onSaveInstanceState(outState) - } - - override fun onDestroy() { - cancel() - super.onDestroy() - mapView.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt index 56eb290..c509041 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/PermissionActivity.kt @@ -3,6 +3,7 @@ import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.amap.api.navi.NaviSetting import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.utils.Constant import pub.devrel.easypermissions.EasyPermissions @@ -30,6 +31,9 @@ } private fun startSplashScreenActivity() { + //先把导航隐私政策声明,后面导航会用到 + NaviSetting.updatePrivacyShow(this, true, true) + NaviSetting.updatePrivacyAgree(this, true) this.navigatePageTo(SplashScreenActivity::class.java) finish() } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cae5baf..43a6620 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -5,16 +5,14 @@ import androidx.recyclerview.widget.GridLayoutManager import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.Poi -import com.amap.api.navi.AmapNaviPage -import com.amap.api.navi.AmapNaviParams -import com.amap.api.navi.AmapNaviType -import com.amap.api.navi.AmapPageType +import com.amap.api.navi.* import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.ImageRecyclerViewAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.combineImagePath import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState @@ -23,6 +21,7 @@ import kotlinx.android.synthetic.main.activity_well_detail.* import kotlinx.android.synthetic.main.include_base_title.* + class WellDetailActivity : BaseActivity() { private lateinit var wellDetailViewModel: WellDetailViewModel @@ -103,18 +102,17 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { -// this.navigatePageTo(MapNavigatorActivity::class.java, wellId) - val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - val endPoi = Poi( + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), "" - ) - val params = - AmapNaviParams(null, null, endPoi, AmapNaviType.DRIVER, AmapPageType.ROUTE) - AmapNaviPage.getInstance().showRouteActivity(this, params, null) + ).showRouteOnMap(this) } } }) diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index 206bfa2..a3ce02e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -4,16 +4,18 @@ import android.os.Handler import android.os.Looper import android.os.Message -import android.util.Log import android.view.View import android.view.animation.LinearInterpolator import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.WellListAdapter import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap import com.casic.app.smartwell.model.WellListModel import com.casic.app.smartwell.model.WellTypeModel import com.casic.app.smartwell.vm.WellListViewModel @@ -153,7 +155,6 @@ private class WeakReferenceHandler(activity: WellManagementActivity) : Handler(Looper.getMainLooper()) { - private val kTag = "WeakReferenceHandler" private val reference: WeakReference = WeakReference(activity) @SuppressLint("NotifyDataSetChanged") @@ -183,7 +184,18 @@ } override fun onItemButtonClicked(position: Int) { - Log.d(kTag, "onItemButtonClicked: ") + val wellDetail = activity.dataBeans[position] + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(activity) + return + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(activity) } }) } diff --git a/app/src/main/res/layout/activity_map_navigation.xml b/app/src/main/res/layout/activity_map_navigation.xml deleted file mode 100644 index d9a0732..0000000 --- a/app/src/main/res/layout/activity_map_navigation.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index ea18cd4..54690cb 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ -