feat: 单个数据增加路径规划功能

This commit is contained in:
肖岩 2022-11-03 10:37:10 +08:00
parent 3da460c914
commit c6a1737d63
14 changed files with 561 additions and 82 deletions

View File

@ -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'
//

View File

@ -2,6 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.navinfo.outdoor">
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_CALENDAR" /> <!-- <uses-permission android:name="android.permission.WRITE_CALENDAR" /> -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
@ -9,9 +10,13 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" /> <!-- <uses-sdk android:minSdkVersion="8"></uses-sdk> -->
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" /> <!-- 安装APK权限 -->
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" /> <!-- 安装APK权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 友盟检测bug -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" tools:node="remove" /><!--移除自启动能力-->
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
tools:node="remove" /> <!-- 移除自启动能力 -->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -->
@ -34,11 +39,13 @@
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<queries>
<intent>
<action android:name="android.intent.action.TTS_SERVICE" />
</intent>
</queries>
<application
android:name=".api.UserApplication"
android:allowBackup="true"
@ -51,6 +58,13 @@
android:supportsRtl="true"
android:theme="@style/Theme.WhiteScreen"
tools:targetApi="n">
<activity
android:name=".NaviActivity"
android:exported="false">
<meta-data
android:name="android.app.lib_name"
android:value="" />
</activity>
<activity android:name=".activity.RegardMapActivity" />
<activity android:name=".activity.StatementActivity" />
<activity
@ -65,35 +79,37 @@
android:name=".activity.PhotographActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|navigation"
android:launchMode="singleTop" />
<meta-data
android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="true" />
<!-- <meta-data-->
<!-- android:name="TencentMapSDK"-->
<!-- android:value="EWWBZ-2PB62-6JXUL-CEX7G-N7UE6-XRB4V" />-->
android:value="true" /> <!-- <meta-data -->
<!-- android:name="TencentMapSDK" -->
<!-- android:value="EWWBZ-2PB62-6JXUL-CEX7G-N7UE6-XRB4V" /> -->
<meta-data
android:name="TencentMapSDK"
android:value="7UEBZ-TWAYK-5JFJM-A5SJI-FA4U6-3IBMX" />
<!-- 今日头屏幕适配 -->
android:value="7UEBZ-TWAYK-5JFJM-A5SJI-FA4U6-3IBMX" /> <!-- 今日头屏幕适配 -->
<meta-data
android:name="design_width_in_dp"
android:value="360" />
<meta-data
android:name="design_height_in_dp"
android:value="640" />
<activity
android:name=".activity.MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- <activity
<!--
<activity
android:name=".activity.UMClickActivity"
android:launchMode="singleTask"
android:exported="true" />-->
android:exported="true" />
-->
<activity
android:name=".activity.LoginActivity"
android:configChanges="keyboardHidden|orientation"
@ -107,16 +123,15 @@
android:screenOrientation="portrait" />
<activity
android:name=".activity.FragmentManagement"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".activity.ImageShowActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.VideoActivity"
android:screenOrientation="portrait" />
<!--自动拍照界面-->
android:screenOrientation="portrait" /> <!-- 自动拍照界面 -->
<activity
android:name=".activity.AutoTakePictureActivity"
android:screenOrientation="portrait" />
@ -127,6 +142,15 @@
<activity
android:name=".activity.GuidanceActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.NaviCarActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.NaviRideActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.NaviWalkActivity"
android:screenOrientation="portrait" />
<provider
android:name="androidx.core.content.FileProvider"
@ -136,8 +160,7 @@
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<!--移除关联启动能力-->
</provider> <!-- 移除关联启动能力 -->
<service
android:name="com.taobao.accs.ChannelService"
android:exported="false"
@ -146,6 +169,7 @@
android:name="com.taobao.accs.data.MsgDistributeService"
android:exported="false"
tools:replace="android:exported" />
<receiver
android:name="com.taobao.accs.EventReceiver"
android:exported="false"
@ -154,6 +178,7 @@
android:name="com.taobao.accs.ServiceReceiver"
android:exported="false"
tools:replace="android:exported" />
<service
android:name="org.android.agoo.accs.AgooService"
android:exported="false"
@ -166,15 +191,16 @@
android:name="com.umeng.message.XiaomiIntentService"
android:exported="false"
tools:replace="android:exported" />
<receiver
android:name="com.taobao.agoo.AgooCommondReceiver"
android:exported="false"
tools:replace="android:exported" />
<service
android:name="com.umeng.message.UmengMessageIntentReceiverService"
android:exported="false"
tools:replace="android:exported" />
</application>
</manifest>

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
/**

View File

@ -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

View File

@ -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/";//登录

View File

@ -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<RouteData> 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<LatLng> 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<RouteData> 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<RouteData> 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) {

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.NaviCarActivity">
<com.tencent.map.navi.car.CarNaviView
android:id="@+id/carnaviview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.NaviCarActivity">
<com.tencent.map.navi.ride.RideNaviView
android:id="@+id/ridenaviview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.NaviCarActivity">
<com.tencent.map.navi.walk.WalkNaviView
android:id="@+id/walknaviview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -164,24 +164,6 @@
app:layout_constraintTop_toBottomOf="@id/iv_refrish" />
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:id="@+id/fram_navi_view"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.tencent.map.navi.car.CarNaviView
android:id="@+id/carnaviview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.tencent.map.navi.ride.RideNaviView
android:id="@+id/ridenaviview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.tencent.map.navi.walk.WalkNaviView
android:id="@+id/walknaviview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</FrameLayout>
<LinearLayout