示例中心
功能在线体验
控制台
您现在的位置: 开发 > Android 猎鹰SDK > 入门指南 >

高德 开发 Android 猎鹰SDK 入门指南

更新时间:2018年08月02日

本指南是向 Android 应用添加猎鹰SDK的快速入门指南。

第1步:下载并安装Android Studio

按照指南下载安装 Android Studio。(注:下载地址为Google官方网站)

第2步:获取高德Key

点我获取Key>>

点我查看Key注册时必要数据SHA1和包名的获取方法>>

第3步:创建猎鹰服务id

请参考服务端API文档,使用创建服务接口创建您的服务,获取服务id。

第4步:创建项目

按以下步骤新建一个 Empty Activity 的应用项目。

1、启动 Android Studio。如果您看到 Welcome to Android Studio 对话框,请选择 Start a new Android Studio project,否则,请点击 Android Studio 菜单栏中的 File,然后点击 New->New Project,按提示输入您的应用名称、公司域和项目位置。 然后点击 Next。

2、选择您的应用所需的机型。 如果您不能确定自己的需要,只需选择 Phone and Tablet。然后点击 Next。

3、在“Add an activity to Mobile”对话框中选择 Empty Activity。 然后点击 Next。

4、按提示输入 Activity 名称、布局名称和标题。 使用默认值即可。 然后点击 Finish。

第5步:下载并安装猎鹰sdk开发包

相关下载按照需求下载开发包并解压,将解压得到的jar包复制到您工程的库文件目录下。

第6步:Hello AMapTrack

1. 配置AndroidManifest.xml文件:

在AndroidManifest.xml的application标签中配置Key:

<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="您的Key"/>

在AndroidManifest.xml中配置权限:



<!--用于进行网络定位-->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<!--用于访问GPS定位-->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

<!--用于访问网络,网络定位需要上网-->

<uses-permission android:name="android.permission.INTERNET"/>

<!--用于读取手机当前的状态-->

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<!--用于写入缓存数据到扩展存储卡-->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<!--用于申请调用A-GPS模块-->

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

<!--用于申请获取蓝牙信息进行室内定位-->

<uses-permission android:name="android.permission.BLUETOOTH"/>

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

在AndroidManifest.xml中声明Service:

 <service android:name="com.amap.api.track.AMapTrackService"/>
<service android:name="com.amap.api.location.APSService"/>

2. 开启轨迹上报

使用如下代码即可开启基础的轨迹上报:

final long serviceId = 2260;  // 这里填入前面创建的服务id
    final String terminalName = "user-123";   // 唯一标识某个用户或某台设备的名称,可根据您的业务自行选择
    final AMapTrackClient aMapTrackClient = new AMapTrackClient(getApplicationContext());
    final OnTrackLifecycleListener onTrackLifecycleListener = new OnTrackLifecycleListener() {

        ...

        @Override
        public void onStartGatherCallback(int status, String msg) {
            if (status == ErrorCode.TrackListen.START_GATHER_SUCEE ||
                    status == ErrorCode.TrackListen.START_GATHER_ALREADY_STARTED) {
                Toast.makeText(MainActivity.this, "定位采集开启成功!", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(MainActivity.this, "定位采集启动异常," + msg, Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onStartTrackCallback(int status, String msg) {
            if (status == ErrorCode.TrackListen.START_TRACK_SUCEE ||
                    status == ErrorCode.TrackListen.START_TRACK_SUCEE_NO_NETWORK ||
                    status == ErrorCode.TrackListen.START_TRACK_ALREADY_STARTED) {
                // 服务启动成功,继续开启收集上报
                aMapTrackClient.startGather(this);
            } else {
                Toast.makeText(MainActivity.this, "轨迹上报服务服务启动异常," + msg, Toast.LENGTH_SHORT).show();
            }
        }
    };
    aMapTrackClient.queryTerminal(new QueryTerminalRequest(serviceId, terminalName), new OnTrackListener() {

        ...

        @Override
        public void onQueryTerminalCallback(QueryTerminalResponse queryTerminalResponse) {
            if (queryTerminalResponse.isSuccess()) {
                if (queryTerminalResponse.getTid() <= 0) {
                    // terminal还不存在,先创建
                    aMapTrackClient.addTerminal(new AddTerminalRequest(terminalName, serviceId), new OnTrackListener() {

                        ...

                        @Override
                        public void onCreateTerminalCallback(AddTerminalResponse addTerminalResponse) {
                            if (addTerminalResponse.isSuccess()) {
                                // 创建完成,开启猎鹰服务
                                long terminalId = addTerminalResponse.getTid();
                                aMapTrackClient.startTrack(new TrackParam(serviceId, terminalId), onTrackLifecycleListener);
                            } else {
                                // 请求失败
                                Toast.makeText(MainActivity.this, "请求失败," + addTerminalResponse.getErrorMsg(), Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                } else {
                    // terminal已经存在,直接开启猎鹰服务
                    long terminalId = queryTerminalResponse.getTid();
                    aMapTrackClient.startTrack(new TrackParam(serviceId, terminalId), onTrackLifecycleListener);
                }
            } else {
                // 请求失败
                Toast.makeText(MainActivity.this, "请求失败," + queryTerminalResponse.getErrorMsg(), Toast.LENGTH_SHORT).show();
            }
        }
    });

第 7 步:连接 Android 设备

了解您的应用实际运行情况的最简单方法是将 Android 设备与计算机相连。 按照说明在您的 Android 设备上启用开发者选项,并配置您的应用和系统以检测设备。

此外,您也可以使用 Android 模拟器来运行您的应用。 使用 Android Virtual Device (AVD) Manager 来配置一台或多台虚拟设备,您可以将设备与 Android 模拟器联用来构建和运行您的应用。

第 8 步:构建和运行您的应用

在 Android Studio 中,点击 Run 菜单选项(或 play 按钮图标)运行您的应用。

提示您选择设备时,选择下列选项之一:

选择与您的计算机相连的 Android 设备 此外,还可以选择 Launch emulator 单选按钮,然后选择您之前配置过的虚拟设备 点击 OK。 Android Studio 将调用 Gradle 构建您的应用,然后在设备或模拟器上显示结果。应用打开可能需要几分钟的时间。

后续步骤

您可能想观摩一些示例代码,可以前往下载官方示例Demo

或者您也可以前往开发指南,阅读更多相关内容。

示例中心 功能
在线体验
常见问题