From c6a1737d6368dc8b875bf5c725e2f895735ca9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E5=B2=A9?= Date: Thu, 3 Nov 2022 10:37:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=95=E4=B8=AA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B7=AF=E5=BE=84=E8=A7=84=E5=88=92=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 60 +++- .../outdoor/activity/NaviCarActivity.java | 46 +++ .../outdoor/activity/NaviRideActivity.java | 48 +++ .../outdoor/activity/NaviWalkActivity.java | 48 +++ .../navinfo/outdoor/base/NaviLifeCycle.java | 46 +++ .../outdoor/fragment/GatherGetFragment.java | 24 +- .../outdoor/fragment/TreasureFragment.java | 4 - .../navinfo/outdoor/http/HttpInterface.java | 4 +- .../com/navinfo/outdoor/util/NaviUtils.java | 308 ++++++++++++++++-- app/src/main/res/layout/activity_navi_car.xml | 12 + .../main/res/layout/activity_navi_ride.xml | 12 + .../main/res/layout/activity_navi_walk.xml | 12 + app/src/main/res/layout/treasure_fragment.xml | 18 - 14 files changed, 561 insertions(+), 82 deletions(-) create mode 100644 app/src/main/java/com/navinfo/outdoor/activity/NaviCarActivity.java create mode 100644 app/src/main/java/com/navinfo/outdoor/activity/NaviRideActivity.java create mode 100644 app/src/main/java/com/navinfo/outdoor/activity/NaviWalkActivity.java create mode 100644 app/src/main/java/com/navinfo/outdoor/base/NaviLifeCycle.java create mode 100644 app/src/main/res/layout/activity_navi_car.xml create mode 100644 app/src/main/res/layout/activity_navi_ride.xml create mode 100644 app/src/main/res/layout/activity_navi_walk.xml diff --git a/app/build.gradle b/app/build.gradle index 4833fd2..41935ed 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,6 +76,7 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation "androidx.lifecycle:lifecycle-common:2.4.1" //友盟自动检测bug implementation 'com.umeng.umsdk:apm:1.2.0' //友盟基础库依赖(必须) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c69c491..db73bc6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,7 @@ + @@ -9,9 +10,13 @@ - + - + @@ -34,11 +39,13 @@ + + + + + + - - - + android:value="true" /> + + - + android:value="7UEBZ-TWAYK-5JFJM-A5SJI-FA4U6-3IBMX" /> + + - - + android:exported="true" /> + --> - + android:screenOrientation="portrait" /> @@ -127,6 +142,15 @@ + + + - - + + + + + - \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/activity/NaviCarActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/NaviCarActivity.java new file mode 100644 index 0000000..420ca60 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/activity/NaviCarActivity.java @@ -0,0 +1,46 @@ +package com.navinfo.outdoor.activity; +import androidx.lifecycle.LifecycleObserver; + +import com.navinfo.outdoor.R; +import com.navinfo.outdoor.api.Constant; +import com.navinfo.outdoor.base.BaseActivity; +import com.navinfo.outdoor.base.NaviLifeCycle; +import com.navinfo.outdoor.util.NaviUtils; +import com.tencent.map.navi.TencentNaviManager; +import com.tencent.map.navi.car.CarNaviView; +import com.tencent.map.navi.data.NaviPoi; +import com.tencent.tencentmap.mapsdk.maps.model.LatLng; + +public class NaviCarActivity extends BaseActivity { + private CarNaviView carNaviView; + private LifecycleObserver lifecycleObserver; + @Override + protected int getLayout() { + return R.layout.activity_navi_car; + } + + @Override + protected void initView() { + super.initView(); + carNaviView = findViewById(R.id.carnaviview); + lifecycleObserver = new NaviLifeCycle(carNaviView); + getLifecycle().addObserver(lifecycleObserver); + TencentNaviManager naviManager = NaviUtils.getInstance().obitainnaviManager(this, Constant.currentNaviType, carNaviView); + // 获取起终点 + LatLng startLatlng = (LatLng) getIntent().getExtras().get("start"); + LatLng endLatlng = (LatLng) getIntent().getExtras().get("end"); + try { + NaviUtils.getInstance().searchRoute(Constant.currentNaviType, naviManager, new NaviPoi(startLatlng.latitude, startLatlng.longitude), new NaviPoi(endLatlng.latitude, endLatlng.longitude)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getLifecycle().removeObserver(lifecycleObserver); + // 如果当前正在导航,自动停止 + NaviUtils.getInstance().stopNavi(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/activity/NaviRideActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/NaviRideActivity.java new file mode 100644 index 0000000..c68a460 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/activity/NaviRideActivity.java @@ -0,0 +1,48 @@ +package com.navinfo.outdoor.activity; + +import androidx.lifecycle.LifecycleObserver; + +import com.navinfo.outdoor.R; +import com.navinfo.outdoor.api.Constant; +import com.navinfo.outdoor.base.BaseActivity; +import com.navinfo.outdoor.base.NaviLifeCycle; +import com.navinfo.outdoor.util.NaviUtils; +import com.tencent.map.navi.TencentNaviManager; +import com.tencent.map.navi.car.CarNaviView; +import com.tencent.map.navi.data.NaviPoi; +import com.tencent.map.navi.ride.RideNaviView; +import com.tencent.tencentmap.mapsdk.maps.model.LatLng; + +public class NaviRideActivity extends BaseActivity { + private RideNaviView rideNaviView; + private LifecycleObserver lifecycleObserver; + @Override + protected int getLayout() { + return R.layout.activity_navi_car; + } + + @Override + protected void initView() { + super.initView(); + rideNaviView = findViewById(R.id.ridenaviview); + lifecycleObserver = new NaviLifeCycle(rideNaviView); + getLifecycle().addObserver(lifecycleObserver); + TencentNaviManager naviManager = NaviUtils.getInstance().obitainnaviManager(this, Constant.currentNaviType, rideNaviView); + // 获取起终点 + LatLng startLatlng = (LatLng) getIntent().getSerializableExtra("start"); + LatLng endLatlng = (LatLng) getIntent().getSerializableExtra("end"); + try { + NaviUtils.getInstance().searchRoute(Constant.currentNaviType, naviManager, new NaviPoi(startLatlng.latitude, startLatlng.longitude), new NaviPoi(endLatlng.latitude, endLatlng.longitude)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getLifecycle().removeObserver(lifecycleObserver); + // 如果当前正在导航,自动停止 + NaviUtils.getInstance().stopNavi(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/activity/NaviWalkActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/NaviWalkActivity.java new file mode 100644 index 0000000..41e7d3f --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/activity/NaviWalkActivity.java @@ -0,0 +1,48 @@ +package com.navinfo.outdoor.activity; + +import androidx.lifecycle.LifecycleObserver; + +import com.navinfo.outdoor.R; +import com.navinfo.outdoor.api.Constant; +import com.navinfo.outdoor.base.BaseActivity; +import com.navinfo.outdoor.base.NaviLifeCycle; +import com.navinfo.outdoor.util.NaviUtils; +import com.tencent.map.navi.TencentNaviManager; +import com.tencent.map.navi.data.NaviPoi; +import com.tencent.map.navi.ride.RideNaviView; +import com.tencent.map.navi.walk.WalkNaviView; +import com.tencent.tencentmap.mapsdk.maps.model.LatLng; + +public class NaviWalkActivity extends BaseActivity { + private WalkNaviView walkNaviView; + private LifecycleObserver lifecycleObserver; + @Override + protected int getLayout() { + return R.layout.activity_navi_car; + } + + @Override + protected void initView() { + super.initView(); + walkNaviView = findViewById(R.id.walknaviview); + lifecycleObserver = new NaviLifeCycle(walkNaviView); + getLifecycle().addObserver(lifecycleObserver); + TencentNaviManager naviManager = NaviUtils.getInstance().obitainnaviManager(this, Constant.currentNaviType, walkNaviView); + // 获取起终点 + LatLng startLatlng = (LatLng) getIntent().getSerializableExtra("start"); + LatLng endLatlng = (LatLng) getIntent().getSerializableExtra("end"); + try { + NaviUtils.getInstance().searchRoute(Constant.currentNaviType, naviManager, new NaviPoi(startLatlng.latitude, startLatlng.longitude), new NaviPoi(endLatlng.latitude, endLatlng.longitude)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getLifecycle().removeObserver(lifecycleObserver); + // 如果当前正在导航,自动停止 + NaviUtils.getInstance().stopNavi(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/base/NaviLifeCycle.java b/app/src/main/java/com/navinfo/outdoor/base/NaviLifeCycle.java new file mode 100644 index 0000000..d2af979 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/base/NaviLifeCycle.java @@ -0,0 +1,46 @@ +package com.navinfo.outdoor.base; + +import androidx.annotation.NonNull; +import androidx.lifecycle.DefaultLifecycleObserver; +import androidx.lifecycle.LifecycleOwner; + +import com.tencent.map.navi.car.CarNaviView; +import com.tencent.map.ui.c; + +public class NaviLifeCycle implements DefaultLifecycleObserver { + private com.tencent.map.ui.c naviView; + + public NaviLifeCycle(c naviView) { + this.naviView = naviView; + } + + @Override + public void onStart(@NonNull LifecycleOwner owner) { + DefaultLifecycleObserver.super.onStart(owner); + naviView.onStart(); + } + + @Override + public void onResume(@NonNull LifecycleOwner owner) { + DefaultLifecycleObserver.super.onResume(owner); + naviView.onResume(); + } + + @Override + public void onPause(@NonNull LifecycleOwner owner) { + DefaultLifecycleObserver.super.onPause(owner); + naviView.onPause(); + } + + @Override + public void onStop(@NonNull LifecycleOwner owner) { + DefaultLifecycleObserver.super.onStop(owner); + naviView.onStop(); + } + + @Override + public void onDestroy(@NonNull LifecycleOwner owner) { + DefaultLifecycleObserver.super.onDestroy(owner); + naviView.onDestroy(); + } +} diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java index ec496a5..af8f52e 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java @@ -2,6 +2,7 @@ package com.navinfo.outdoor.fragment; import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Message; @@ -21,6 +22,9 @@ import com.kongzue.dialog.util.DialogSettings; import com.kongzue.dialog.v3.MessageDialog; import com.lzy.okgo.model.HttpParams; import com.navinfo.outdoor.R; +import com.navinfo.outdoor.activity.NaviCarActivity; +import com.navinfo.outdoor.activity.NaviRideActivity; +import com.navinfo.outdoor.activity.NaviWalkActivity; import com.navinfo.outdoor.api.Constant; import com.navinfo.outdoor.base.BaseFragment; import com.navinfo.outdoor.bean.PolygonTaskBean; @@ -224,14 +228,20 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe ToastUtils.Message(getActivity(), "无法获取当前数据的位置,请重新打开此数据尝试!"); return; } - // 使用当前数据起点作为导航的终点,规划路径 - NaviPoi startPoi = new NaviPoi(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()); - NaviPoi endPoi = new NaviPoi(Double.parseDouble(poiEntity.getY()), Double.parseDouble(poiEntity.getX())); - try { - NaviUtils.getInstance().searchRoute(Constant.currentNaviType, NaviUtils.getInstance().obitainnaviManager(getActivity(), Constant.currentNaviType), startPoi, endPoi); - } catch (Exception e) { - e.printStackTrace(); + // 跳转到指定的Activity + Class toClass = null; + if (Constant.currentNaviType == Constant.NAV_TYPE.CAR) { + toClass = NaviCarActivity.class; + } else if (Constant.currentNaviType == Constant.NAV_TYPE.RIDE) { + toClass = NaviRideActivity.class; + } else { + toClass = NaviWalkActivity.class; } + Intent naviIntent = new Intent(getActivity(), toClass); + // 使用当前数据起点作为导航的终点,规划路径 + naviIntent.putExtra("start", new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude())); + naviIntent.putExtra("end", new LatLng(Double.parseDouble(poiEntity.getY()), Double.parseDouble(poiEntity.getX()))); + getActivity().startActivity(naviIntent); } /** diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java index 71df9a4..17ba24b 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -283,8 +283,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen initUM(); //检查是否有没有填完的页面 initSharePre(); - // 初始化导航工具类 - NaviUtils.getInstance().init(getActivity(), tencentMap, findViewById(R.id.fram_navi_view)); } @Override @@ -1152,8 +1150,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } removableScreenMarker.clear(); } - // 如果当前正在导航,自动停止 - NaviUtils.getInstance().stopNavi(); } @Override diff --git a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java index e73822a..720779c 100644 --- a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java +++ b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java @@ -3,8 +3,8 @@ package com.navinfo.outdoor.http; public class HttpInterface { // public static final String IP = "http://172.23.138.133:9999/m4";//测试接口-IP public static final String IPm = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//开发接口-外网 - public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网 - public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口 + public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网 + public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口 public static final String USER_PATH = "/user/";//我的 public static final String MSG_LIST_PATH = "/msgList/";//发现 public static final String USER_LOGIN_PATH = "/userlogin/";//登录 diff --git a/app/src/main/java/com/navinfo/outdoor/util/NaviUtils.java b/app/src/main/java/com/navinfo/outdoor/util/NaviUtils.java index a0aad16..39a6fa2 100644 --- a/app/src/main/java/com/navinfo/outdoor/util/NaviUtils.java +++ b/app/src/main/java/com/navinfo/outdoor/util/NaviUtils.java @@ -1,5 +1,6 @@ package com.navinfo.outdoor.util; +import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.View; @@ -15,13 +16,20 @@ import com.navinfo.outdoor.R; import com.navinfo.outdoor.api.Constant; import com.tencent.map.navi.CalcRouteCallback; import com.tencent.map.navi.INaviView; +import com.tencent.map.navi.TencentNaviCallback; import com.tencent.map.navi.TencentNaviManager; +import com.tencent.map.navi.TencentRideNaviListener; import com.tencent.map.navi.TencentRouteSearchCallback; +import com.tencent.map.navi.TencentWalkNaviListener; import com.tencent.map.navi.car.CarNaviView; import com.tencent.map.navi.car.CarRouteSearchOptions; import com.tencent.map.navi.car.TencentCarNaviManager; +import com.tencent.map.navi.data.AttachedLocation; import com.tencent.map.navi.data.CalcRouteResult; import com.tencent.map.navi.data.NaviPoi; +import com.tencent.map.navi.data.NaviTts; +import com.tencent.map.navi.data.NavigationData; +import com.tencent.map.navi.data.ParallelRoadStatus; import com.tencent.map.navi.data.RouteColors; import com.tencent.map.navi.data.RouteData; import com.tencent.map.navi.data.TrafficItem; @@ -47,10 +55,6 @@ public class NaviUtils { private static NaviUtils instance; private Context mContext; private TencentMap tencentMap; - private View framNaviView; // 各类型导航界面的父界面,可以通过该view获取驾车导航、骑行导航和步行导航的view - private CarNaviView carNaviView; // 驾车导航界面 - private RideNaviView rideNaviView; // 骑行导航界面 - private WalkNaviView walkNaviView; // 步行导航界面 private TencentNaviManager naviManager = null; public static NaviUtils getInstance() { if (instance == null) { @@ -59,16 +63,6 @@ public class NaviUtils { return instance; } - // 在调用路径规划和导航前必须提前调用该方法,后续流程都需要用到参数中的内容 - public void init(Context mContext, TencentMap tencentMap, View framNaviView) { - this.mContext = mContext; - this.tencentMap = tencentMap; - this.framNaviView = framNaviView; - this.carNaviView = framNaviView.findViewById(R.id.carnaviview); - this.rideNaviView = framNaviView.findViewById(R.id.ridenaviview); - this.walkNaviView = framNaviView.findViewById(R.id.walknaviview); - } - public void selectNaviType(AppCompatActivity mContext, SelectNaviTypeListener selectNaviTypeListener) { CustomDialog selectNaviTypeDialog = CustomDialog.build(mContext, R.layout.dialog_select_navi_type, new CustomDialog.OnBindView() { @Override @@ -122,12 +116,9 @@ public class NaviUtils { selectNaviTypeDialog.show(); } - public TencentNaviManager obitainnaviManager(Context mContext, Constant.NAV_TYPE nav_type) { - framNaviView.setVisibility(View.VISIBLE); - carNaviView.setVisibility(View.GONE); - rideNaviView.setVisibility(View.GONE); - walkNaviView.setVisibility(View.GONE); + public TencentNaviManager obitainnaviManager(Activity mContext, Constant.NAV_TYPE nav_type, com.tencent.map.ui.c naviView) { if (nav_type == Constant.NAV_TYPE.CAR) { // 驾车 + CarNaviView carNaviView = (CarNaviView) naviView; naviManager = new TencentCarNaviManager(mContext); carNaviView.setVisibility(View.VISIBLE); naviManager.addNaviView(carNaviView); @@ -136,13 +127,100 @@ public class NaviUtils { @Override public void onBackClick() { ((TencentCarNaviManager)naviManager).stopNavi(); - - framNaviView.setVisibility(View.GONE); - carNaviView.setVisibility(View.GONE); SystemTTS.getInstance(mContext).playText("结束导航"); + mContext.finish(); + } + }); + ((TencentCarNaviManager)naviManager).addTencentNaviCallback(new TencentNaviCallback() { + @Override + public void onStartNavi() { + + } + + @Override + public void onStopNavi() { + NaviTts naviTts = new NaviTts(); + naviTts.setText("结束导航"); + mContext.finish(); + } + + @Override + public void onOffRoute() { + + } + + @Override + public void onRecalculateRouteSuccess(int i, ArrayList arrayList) { + + } + + @Override + public void onRecalculateRouteSuccessInFence(int i) { + + } + + @Override + public void onRecalculateRouteFailure(int i, int i1, String s) { + + } + + @Override + public void onRecalculateSuccess(CalcRouteResult calcRouteResult) { + + } + + @Override + public void onRecalculateFailure(CalcRouteResult calcRouteResult) { + + } + + @Override + public void onRecalculateRouteStarted(int i) { + + } + + @Override + public void onRecalculateRouteCanceled() { + + } + + @Override + public void onArrivedDestination() { + mContext.finish(); + } + + @Override + public void onPassedWayPoint(int i) { + + } + + @Override + public void onUpdateRoadType(int i) { + + } + + @Override + public void onUpdateParallelRoadStatus(ParallelRoadStatus parallelRoadStatus) { + + } + + @Override + public void onUpdateAttachedLocation(AttachedLocation attachedLocation) { + + } + + @Override + public void onFollowRouteClick(String s, ArrayList arrayList) { + + } + + @Override + public int onVoiceBroadcast(NaviTts naviTts) { + return 0; } }); } else if (nav_type == Constant.NAV_TYPE.RIDE) { // 骑行 + RideNaviView rideNaviView = (RideNaviView) naviView; naviManager = new TencentRideNaviManager(mContext); rideNaviView.setVisibility(View.VISIBLE); ((TencentRideNaviManager)naviManager).addTencentNaviListener(rideNaviView); @@ -151,13 +229,90 @@ public class NaviUtils { @Override public void onBackClick() { ((TencentRideNaviManager)naviManager).stopNavi(); - - framNaviView.setVisibility(View.GONE); - rideNaviView.setVisibility(View.GONE); SystemTTS.getInstance(mContext).playText("结束导航"); + mContext.finish(); + } + }); + ((TencentRideNaviManager) naviManager).addTencentNaviListener(new TencentRideNaviListener() { + @Override + public void onRecalculateRouteSuccess(ArrayList arrayList) { + + } + + @Override + public void onDirectionUpdateBySensor(float v) { + + } + + @Override + public void onStartNavi() { + + } + + @Override + public void onStopNavi() { + NaviTts naviTts = new NaviTts(); + naviTts.setText("结束导航"); + mContext.finish(); + } + + @Override + public void onOffRoute() { + + } + + @Override + public int onVoiceBroadcast(NaviTts naviTts) { + return 0; + } + + @Override + public void onArrivedDestination() { + mContext.finish(); + } + + @Override + public void onUpdateAttachedLocation(AttachedLocation attachedLocation) { + + } + + @Override + public void onGpsRssiChanged(int i) { + + } + + @Override + public void onUpdateNavigationData(NavigationData navigationData) { + + } + + @Override + public void onGpsWeakNotify() { + + } + + @Override + public void onGpsStrongNotify() { + + } + + @Override + public void onGpsStatusChanged(boolean b) { + + } + + @Override + public void onUpdateCurrentRoute(RouteData routeData) { + + } + + @Override + public void onChangeRes(boolean b) { + } }); } else { + WalkNaviView walkNaviView = (WalkNaviView) naviView; naviManager = new TencentRideNaviManager(mContext); walkNaviView.setVisibility(View.VISIBLE); ((TencentWalkNaviManager)naviManager).addTencentNaviListener(walkNaviView); @@ -166,15 +321,100 @@ public class NaviUtils { @Override public void onBackClick() { ((TencentWalkNaviManager)naviManager).stopNavi(); - - framNaviView.setVisibility(View.GONE); - walkNaviView.setVisibility(View.GONE); SystemTTS.getInstance(mContext).playText("结束导航"); + mContext.finish(); + } + }); + ((TencentWalkNaviManager) naviManager).addTencentNaviListener(new TencentWalkNaviListener() { + @Override + public void onRecalculateRouteSuccess(ArrayList arrayList) { + + } + + @Override + public void onDirectionUpdateBySensor(float v) { + + } + + @Override + public void onStartNavi() { + + } + + @Override + public void onStopNavi() { + NaviTts naviTts = new NaviTts(); + naviTts.setText("结束导航"); + mContext.finish(); + } + + @Override + public void onOffRoute() { + + } + + @Override + public int onVoiceBroadcast(NaviTts naviTts) { + return 0; + } + + @Override + public void onArrivedDestination() { + mContext.finish(); + } + + @Override + public void onUpdateAttachedLocation(AttachedLocation attachedLocation) { + + } + + @Override + public void onGpsRssiChanged(int i) { + + } + + @Override + public void onUpdateNavigationData(NavigationData navigationData) { + + } + + @Override + public void onGpsWeakNotify() { + + } + + @Override + public void onGpsStrongNotify() { + + } + + @Override + public void onGpsStatusChanged(boolean b) { + + } + + @Override + public void onUpdateCurrentRoute(RouteData routeData) { + + } + + @Override + public void onChangeRes(boolean b) { + } }); } + if (tencentMap == null) { + tencentMap = naviView.getMap(); + } + if (this.mContext == null) { + this.mContext = mContext; + } + // 开启语音播报 naviManager.setInternalTtsEnabled(true); + naviManager.setIsDefaultRes(true); + naviManager.setUseExtraLocationData(true); return naviManager; } @@ -215,14 +455,14 @@ public class NaviUtils { try { // 自动开始导航 if (Constant.currentNaviType == Constant.NAV_TYPE.CAR) { - ((TencentCarNaviManager)naviManager).startNavi(0); -// ((TencentCarNaviManager)naviManager).startSimulateNavi(0); +// ((TencentCarNaviManager)naviManager).startNavi(0); + ((TencentCarNaviManager)naviManager).startSimulateNavi(0); } else if (Constant.currentNaviType == Constant.NAV_TYPE.RIDE) { - ((TencentRideNaviManager)naviManager).startNavi(0); -// ((TencentRideNaviManager)naviManager).startSimulateNavi(0); +// ((TencentRideNaviManager)naviManager).startNavi(0); + ((TencentRideNaviManager)naviManager).startSimulateNavi(0); } else { - ((TencentWalkNaviManager)naviManager).startNavi(0); -// ((TencentWalkNaviManager)naviManager).startSimulateNavi(0); +// ((TencentWalkNaviManager)naviManager).startNavi(0); + ((TencentWalkNaviManager)naviManager).startSimulateNavi(0); } } catch (Exception e) { diff --git a/app/src/main/res/layout/activity_navi_car.xml b/app/src/main/res/layout/activity_navi_car.xml new file mode 100644 index 0000000..e6f5ef7 --- /dev/null +++ b/app/src/main/res/layout/activity_navi_car.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_navi_ride.xml b/app/src/main/res/layout/activity_navi_ride.xml new file mode 100644 index 0000000..3a8c1f6 --- /dev/null +++ b/app/src/main/res/layout/activity_navi_ride.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_navi_walk.xml b/app/src/main/res/layout/activity_navi_walk.xml new file mode 100644 index 0000000..ee06500 --- /dev/null +++ b/app/src/main/res/layout/activity_navi_walk.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/treasure_fragment.xml b/app/src/main/res/layout/treasure_fragment.xml index a693027..d4c880f 100644 --- a/app/src/main/res/layout/treasure_fragment.xml +++ b/app/src/main/res/layout/treasure_fragment.xml @@ -164,24 +164,6 @@ app:layout_constraintTop_toBottomOf="@id/iv_refrish" /> - - - - -