java车机_入门指南-高德地图车机版 | 高德地图API

本文介绍Android端通过系统广播调用高德地图车机版的方法,包括如何判断是否安装了高德地图车机版、如何通过Intent调用特定功能、解决广播唤起失败等问题。

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");

C++端

在线协议文档已下线,如有需要请联系项目经理!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值