Merge branch 'map_dev' into dev
# Conflicts: # ln_jq_app/android/app/src/main/AndroidManifest.xml # ln_jq_app/ios/Runner/Info.plist
@@ -68,3 +68,8 @@ android {
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("com.amap.api:navi-3dmap-location-search:10.0.700_3dmap10.0.700_loc6.4.5_sea9.7.2")
|
||||
implementation("com.squareup.okhttp3:okhttp:4.12.0")
|
||||
}
|
||||
|
||||
29
ln_jq_app/android/app/proguard-rules.pro
vendored
@@ -58,4 +58,31 @@
|
||||
-dontwarn org.android.agoo.**
|
||||
-dontwarn anetwork.**
|
||||
-dontwarn com.ut.**
|
||||
-dontwarn com.ta.**
|
||||
-dontwarn com.ta.**
|
||||
|
||||
|
||||
3D 地图 V5.0.0之前:
|
||||
-keep class com.amap.api.maps.**{*;}
|
||||
-keep class com.autonavi.amap.mapcore.*{*;}
|
||||
-keep class com.amap.api.trace.**{*;}
|
||||
|
||||
3D 地图 V5.0.0之后:
|
||||
-keep class com.amap.api.maps.**{*;}
|
||||
-keep class com.autonavi.**{*;}
|
||||
-keep class com.amap.api.trace.**{*;}
|
||||
|
||||
定位
|
||||
-keep class com.amap.api.location.**{*;}
|
||||
-keep class com.amap.api.fence.**{*;}
|
||||
-keep class com.autonavi.aps.amapapi.model.**{*;}
|
||||
|
||||
搜索
|
||||
-keep class com.amap.api.services.**{*;}
|
||||
|
||||
2D地图
|
||||
-keep class com.amap.api.maps2d.**{*;}
|
||||
-keep class com.amap.api.mapcore2d.**{*;}
|
||||
|
||||
导航
|
||||
-keep class com.amap.api.navi.**{*;}
|
||||
-keep class com.autonavi.**{*;}
|
||||
@@ -17,7 +17,12 @@
|
||||
<!--定位权限-->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
|
||||
<!--用于申请调用A-GPS模块-->
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
|
||||
<!--如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限-->
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<!--如果您的应用需要后台定位权限,且有可能运行在Android Q设备上,并且设置了target>28,必须增加这个权限声明-->
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
|
||||
|
||||
@@ -26,6 +31,25 @@
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/logo"
|
||||
android:label="小羚羚">
|
||||
|
||||
<!-- 高德地图Key -->
|
||||
<meta-data
|
||||
android:name="com.amap.api.v2.apikey"
|
||||
android:value="92495660f7bc990cb475426c47c03b65" />
|
||||
|
||||
<!-- 高德地图定位服务 -->
|
||||
<service android:name="com.amap.api.location.APSService" />
|
||||
<!--高德导航-->
|
||||
<activity
|
||||
android:name="com.amap.api.navi.AmapRouteActivity"
|
||||
android:theme="@android:style/Theme.NoTitleBar"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize|navigation" />
|
||||
<!--自定义导航 Activity-->
|
||||
<activity
|
||||
android:name="com.lnkj.ln_jq_app.NavigationActivity"
|
||||
android:theme="@android:style/Theme.NoTitleBar"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize|navigation"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
@@ -61,47 +85,7 @@
|
||||
<meta-data
|
||||
android:name="com.alibaba.app.appsecret"
|
||||
android:value="39628204345a4240b5b645b68a5896c7" />
|
||||
<!-- 华为通道的参数appid -->
|
||||
<meta-data
|
||||
android:name="com.huawei.hms.client.appid"
|
||||
android:value="" />
|
||||
|
||||
<!-- vivo通道的参数api_key为appkey -->
|
||||
<meta-data
|
||||
android:name="com.vivo.push.api_key"
|
||||
android:value="" />
|
||||
<meta-data
|
||||
android:name="com.vivo.push.app_id"
|
||||
android:value="" />
|
||||
|
||||
<!-- honor通道的参数-->
|
||||
<meta-data
|
||||
android:name="com.hihonor.push.app_id"
|
||||
android:value="" />
|
||||
|
||||
<!-- oppo -->
|
||||
<meta-data
|
||||
android:name="com.oppo.push.key"
|
||||
android:value="" />
|
||||
<meta-data
|
||||
android:name="com.oppo.push.secret"
|
||||
android:value="" />
|
||||
|
||||
<!-- 小米-->
|
||||
<meta-data
|
||||
android:name="com.xiaomi.push.id"
|
||||
android:value="id=2222222222222222222" />
|
||||
<meta-data
|
||||
android:name="com.xiaomi.push.key"
|
||||
android:value="id=5555555555555" />
|
||||
|
||||
<!-- 魅族-->
|
||||
<meta-data
|
||||
android:name="com.meizu.push.id"
|
||||
android:value="" />
|
||||
<meta-data
|
||||
android:name="com.meizu.push.key"
|
||||
android:value="" />
|
||||
|
||||
|
||||
<!-- 接收推送消息 -->
|
||||
|
||||
@@ -1,6 +1,136 @@
|
||||
package com.lnkj.ln_jq_app;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import io.flutter.embedding.android.FlutterActivity;
|
||||
import io.flutter.embedding.engine.FlutterEngine;
|
||||
|
||||
public class MainActivity extends FlutterActivity {
|
||||
|
||||
private static final String CHANNEL = "com.lnkj.ln_jq_app/map";
|
||||
private static final String TAG = "MainActivity";
|
||||
|
||||
// 权限请求码
|
||||
private static final int PERMISSION_REQUEST_CODE = 1001;
|
||||
|
||||
private NativeMapView mapView;
|
||||
|
||||
@Override
|
||||
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine);
|
||||
|
||||
// 注册高德地图导航Platform View
|
||||
flutterEngine
|
||||
.getPlatformViewsController()
|
||||
.getRegistry()
|
||||
.registerViewFactory(
|
||||
"NativeFirstPage",
|
||||
new NativeMapFactory(this)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前系统版本需要申请的权限列表
|
||||
*/
|
||||
private String[] getRequiredPermissions() {
|
||||
List<String> permissions = new ArrayList<>();
|
||||
// 定位权限是必须的
|
||||
permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
|
||||
permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
|
||||
|
||||
// 存储权限处理:Android 13 (API 33) 以下才需要申请 legacy 存储权限
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
}
|
||||
|
||||
return permissions.toArray(new String[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查并申请权限
|
||||
*/
|
||||
private void checkAndRequestPermissions() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
String[] requiredPermissions = getRequiredPermissions();
|
||||
List<String> deniedPermissions = new ArrayList<>();
|
||||
|
||||
for (String permission : requiredPermissions) {
|
||||
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
|
||||
deniedPermissions.add(permission);
|
||||
}
|
||||
}
|
||||
|
||||
if (!deniedPermissions.isEmpty()) {
|
||||
ActivityCompat.requestPermissions(
|
||||
this,
|
||||
deniedPermissions.toArray(new String[0]),
|
||||
PERMISSION_REQUEST_CODE
|
||||
);
|
||||
} else {
|
||||
Log.d(TAG, "所有必要权限已授予");
|
||||
if (mapView != null) {
|
||||
mapView.startLocation();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mapView != null) {
|
||||
mapView.startLocation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void requestPermissions() {
|
||||
checkAndRequestPermissions();
|
||||
}
|
||||
|
||||
public void setMapView(NativeMapView mapView) {
|
||||
this.mapView = mapView;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mapView != null) {
|
||||
mapView.dispose();
|
||||
mapView = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
|
||||
if (requestCode == PERMISSION_REQUEST_CODE) {
|
||||
boolean locationGranted = false;
|
||||
for (int i = 0; i < permissions.length; i++) {
|
||||
if (Manifest.permission.ACCESS_FINE_LOCATION.equals(permissions[i])
|
||||
&& grantResults[i] == PackageManager.PERMISSION_GRANTED) {
|
||||
locationGranted = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (locationGranted) {
|
||||
if (mapView != null) {
|
||||
mapView.startLocation();
|
||||
}
|
||||
} else {
|
||||
// 只有在定位权限确实被拒绝时才弹出提示
|
||||
Toast.makeText(this, "请授予应用定位权限以正常使用地图功能", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.lnkj.ln_jq_app;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import io.flutter.plugin.common.MessageCodec;
|
||||
import io.flutter.plugin.common.StandardMessageCodec;
|
||||
import io.flutter.plugin.platform.PlatformView;
|
||||
import io.flutter.plugin.platform.PlatformViewFactory;
|
||||
|
||||
/**
|
||||
* 高德地图导航 Platform View Factory
|
||||
* 对应iOS的NativeViewFactory
|
||||
*/
|
||||
public class NativeMapFactory extends PlatformViewFactory {
|
||||
|
||||
private static final String VIEW_TYPE_ID = "NativeFirstPage";
|
||||
private static NativeMapView mapViewInstance = null;
|
||||
private final Context context;
|
||||
|
||||
public NativeMapFactory(Context context) {
|
||||
super(StandardMessageCodec.INSTANCE);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlatformView create(Context context, int viewId, Object args) {
|
||||
mapViewInstance = new NativeMapView(context, viewId, args);
|
||||
return mapViewInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取地图实例,供MainActivity使用
|
||||
*/
|
||||
public static NativeMapView getMapView() {
|
||||
return mapViewInstance;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,407 @@
|
||||
package com.lnkj.ln_jq_app;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.amap.api.maps.AMapException;
|
||||
import com.amap.api.navi.AMapNavi;
|
||||
import com.amap.api.navi.AMapNaviListener;
|
||||
import com.amap.api.navi.AMapNaviView;
|
||||
import com.amap.api.navi.AMapNaviViewListener;
|
||||
import com.amap.api.navi.AMapNaviViewOptions;
|
||||
import com.amap.api.navi.enums.NaviType;
|
||||
import com.amap.api.navi.enums.PathPlanningStrategy;
|
||||
import com.amap.api.navi.model.AMapCalcRouteResult;
|
||||
import com.amap.api.navi.model.AMapCarInfo;
|
||||
import com.amap.api.navi.model.AMapLaneInfo;
|
||||
import com.amap.api.navi.model.AMapModelCross;
|
||||
import com.amap.api.navi.model.AMapNaviCameraInfo;
|
||||
import com.amap.api.navi.model.AMapNaviCross;
|
||||
import com.amap.api.navi.model.AMapNaviLocation;
|
||||
import com.amap.api.navi.model.AMapNaviRouteNotifyData;
|
||||
import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo;
|
||||
import com.amap.api.navi.model.AMapServiceAreaInfo;
|
||||
import com.amap.api.navi.model.AimLessModeCongestionInfo;
|
||||
import com.amap.api.navi.model.AimLessModeStat;
|
||||
import com.amap.api.navi.model.NaviInfo;
|
||||
import com.amap.api.navi.model.NaviPoi;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.activity.ComponentActivity;
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
/**
|
||||
* 导航
|
||||
*/
|
||||
public class NavigationActivity extends ComponentActivity implements AMapNaviListener {
|
||||
|
||||
private static final String TAG = "NavigationActivity";
|
||||
|
||||
private AMapNavi mAMapNavi;
|
||||
private AMapNaviView naviView;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// 创建导航视图
|
||||
naviView = new AMapNaviView(this);
|
||||
naviView.onCreate(savedInstanceState);
|
||||
naviView.setAMapNaviViewListener(new AMapNaviViewListener() {
|
||||
@Override
|
||||
public void onNaviSetting() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviCancel() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onNaviBackClick() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviMapMode(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviTurnClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNextRoadClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanViewButtonClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLockMap(boolean b) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviViewLoaded() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapTypeChanged(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviViewShowMode(int i) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
AMapNaviViewOptions aMapNaviViewOptions = new AMapNaviViewOptions();
|
||||
Bitmap carBitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.car);
|
||||
aMapNaviViewOptions.setCarBitmap(carBitmap);
|
||||
aMapNaviViewOptions.setSettingMenuEnabled(false);
|
||||
naviView.setViewOptions(aMapNaviViewOptions);
|
||||
|
||||
// 创建 AMapNavi 实例
|
||||
try {
|
||||
mAMapNavi = AMapNavi.getInstance(this);
|
||||
mAMapNavi.addAMapNaviListener(this);
|
||||
} catch (AMapException e) {
|
||||
Log.e(TAG, "初始化导航失败", e);
|
||||
Toast.makeText(this, "初始化导航失败", Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
// 添加到容器
|
||||
FrameLayout container = new FrameLayout(this);
|
||||
container.addView(naviView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
|
||||
setContentView(container);
|
||||
|
||||
// 获取 Intent 中的参数
|
||||
processIntent(getIntent());
|
||||
|
||||
// 处理返回键
|
||||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
Log.d(TAG, "NavigationActivity created");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
processIntent(intent);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理 Intent 参数并启动导航
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private void processIntent(Intent intent) {
|
||||
if (intent == null) {
|
||||
Log.w(TAG, "Intent is null");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取起点、终点和途经点
|
||||
NaviPoi startNaviPoi = (NaviPoi) intent.getParcelableExtra("startPoi");
|
||||
NaviPoi endNaviPoi = (NaviPoi) intent.getParcelableExtra("endPoi");
|
||||
List<NaviPoi> wayPoints = intent.getParcelableArrayListExtra("wayPoints");
|
||||
|
||||
if (wayPoints != null) {
|
||||
Log.d("Navi", "获取到途径点数量: " + wayPoints.size());
|
||||
}
|
||||
|
||||
|
||||
if (startNaviPoi == null || endNaviPoi == null) {
|
||||
Log.e(TAG, "Missing start or end point");
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置车辆信息
|
||||
AMapCarInfo carInfo = (AMapCarInfo) intent.getParcelableExtra("carInfo");
|
||||
if (carInfo != null) {
|
||||
mAMapNavi.setCarInfo(carInfo);
|
||||
}
|
||||
|
||||
// 计算并启动导航
|
||||
mAMapNavi.calculateDriveRoute(startNaviPoi, endNaviPoi, wayPoints, PathPlanningStrategy.DRIVING_MULTIPLE_ROUTES_DEFAULT);
|
||||
|
||||
Log.d(TAG, "Navigation started from: " + startNaviPoi.getName() + " - " + endNaviPoi.getName());
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Process intent error", e);
|
||||
Toast.makeText(this, "导航启动失败", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (naviView != null) {
|
||||
naviView.onResume();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
if (naviView != null) {
|
||||
naviView.onPause();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
if (naviView != null) {
|
||||
naviView.onSaveInstanceState(outState);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
// 停止导航
|
||||
if (mAMapNavi != null) {
|
||||
mAMapNavi.stopNavi();
|
||||
mAMapNavi.removeAMapNaviListener(this);
|
||||
}
|
||||
if (naviView != null) {
|
||||
naviView.onDestroy();
|
||||
}
|
||||
Log.d(TAG, "NavigationActivity destroyed");
|
||||
}
|
||||
|
||||
private int dp2px(float dp) {
|
||||
float density = getResources().getDisplayMetrics().density;
|
||||
return (int) (dp * density + 0.5f);
|
||||
}
|
||||
|
||||
// ============ AMapNaviListener 回调实现 ============
|
||||
|
||||
|
||||
@Override
|
||||
public void onInitNaviFailure() {
|
||||
Log.e(TAG, "onInitNaviFailure");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitNaviSuccess() {
|
||||
Log.d(TAG, "onInitNaviSuccess");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartNavi(int i) {
|
||||
Log.d(TAG, "onStartNavi: " + i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTrafficStatusUpdate() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLocationChange(AMapNaviLocation aMapNaviLocation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetNavigationText(int i, String s) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetNavigationText(String s) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEndEmulatorNavi() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArriveDestination() {
|
||||
Log.d(TAG, "onArriveDestination");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCalculateRouteFailure(int i) {
|
||||
Log.e(TAG, "onCalculateRouteFailure: " + i);
|
||||
Toast.makeText(this, "路径计算失败: " + i, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCameraInfo(AMapNaviCameraInfo[] aMapNaviCameraInfos) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateIntervalCameraInfo(AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceAreaUpdate(AMapServiceAreaInfo[] aMapServiceAreaInfos) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showCross(AMapNaviCross aMapNaviCross) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideCross() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showModeCross(AMapModelCross aMapModelCross) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideModeCross() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showLaneInfo(AMapLaneInfo[] aMapLaneInfos, byte[] bytes, byte[] bytes1) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showLaneInfo(AMapLaneInfo aMapLaneInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideLaneInfo() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCalculateRouteSuccess(int[] ints) {
|
||||
Log.d(TAG, "onCalculateRouteSuccess");
|
||||
if (mAMapNavi != null) {
|
||||
mAMapNavi.startNavi(NaviType.GPS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyParallelRoad(int i) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAimlessModeStatistics(AimLessModeStat aimLessModeStat) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAimlessModeCongestionInfo(AimLessModeCongestionInfo aimLessModeCongestionInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayRing(int i) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
|
||||
Log.d(TAG, "onCalculateRouteSuccess (result)");
|
||||
if (mAMapNavi != null) {
|
||||
mAMapNavi.startNavi(NaviType.GPS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCalculateRouteFailure(AMapCalcRouteResult aMapCalcRouteResult) {
|
||||
Log.e(TAG, "onCalculateRouteFailure: " + aMapCalcRouteResult.getErrorCode());
|
||||
Toast.makeText(this, "路径计算失败", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviRouteNotify(AMapNaviRouteNotifyData aMapNaviRouteNotifyData) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsSignalWeak(boolean b) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReCalculateRouteForYaw() {
|
||||
Log.d(TAG, "onReCalculateRouteForYaw");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReCalculateRouteForTrafficJam() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrivedWayPoint(int i) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsOpenStatus(boolean b) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviInfoUpdate(NaviInfo naviInfo) {
|
||||
}
|
||||
}
|
||||
BIN
ln_jq_app/android/app/src/main/res/drawable/car.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_close.png
Normal file
|
After Width: | Height: | Size: 880 B |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_fuel.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_location.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_marker.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_mileage.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_tag.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_time.png
Normal file
|
After Width: | Height: | Size: 810 B |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_toll.png
Normal file
|
After Width: | Height: | Size: 924 B |
BIN
ln_jq_app/android/app/src/main/res/drawable/ic_un_marker.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 6.0 KiB |
BIN
ln_jq_app/android/app/src/main/res/mipmap-xhdpi/logo.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |