入门指南 最后更新时间: 2020年12月15日
Android端
通讯方式
通过系统广播调用的方式实现功能调用或信息透出
ACTION:
高德发送的广播ACTION: AUTONAVI_STANDARD_BROADCAST_SEND
高德接收的广播ACTION: AUTONAVI_STANDARD_BROADCAST_RECV
用例说明
开发者在调用 URI 之前需要先判断是否安装了高德地图车机版。如果没有安装,下载安装高德地图车机版。然后调用相关地图功能系统/第三方在使用接口协议时,车机设备中需要安装高德地图车机版,同时需要拼写符合协议规范的URI串,通过key值区分不同的协议接口,例如:开启实时路况
Intent intent = new Intent();
intent.setAction("AUTONAVI_STANDARD_BROADCAST_RECV");
intent.putExtra("KEY_TYPE", 10027);
intent.putExtra("EXTRA_TYPE",0);
intent.putExtra("EXTRA_OPERA",0);
sendBroadcast(intent);
执行上述代码就可以控制车机版高德地图的昼夜模式显示。
特殊处理
无法唤起地图
针对第一次安装地图或者强制停止后,调用具体广播协议,无法唤起地图的问题。
根本原因:Android 3.0后,对静态注册的广播做了限制。
解决方案1:
intent 新增 flag处理:
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
解决方案2:
若方案一未能解决您的问题,部分OS仍然无法唤起。请采用下面示例,先主动唤起应用。
/高德地图车镜版本(后视镜)使用该包名/
String pkgName = "com.autonavi.amapautolite";
/高德地图车机版本 使用该包名/
String pkgName = "com.autonavi.amapauto";
Intent launchIntent = new Intent();
launchIntent.setComponent(
new ComponentName(pkgName,
"com.autonavi.auto.remote.fill.UsbFillActivity"));
startActivity(launchIntent);
无法收到广播
targetSdkVersion升级到26,会碰到导航端都无法收到第三方的广播
解法:第三方发送广播时添加包名,代码如下:
车机:intent.setPackage("com.autonavi.amapauto");
车镜:intent.setPackage("com.autonavi.amapautolite");