开发 Android 猎鹰SDK 入门指南

入门指南 最后更新时间: 2023年12月15日

本指南是向 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.INTERNET" />  

<!--允许获取精确位置,精准定位必选-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
 
<!--允许获取粗略位置,粗略定位必选-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
 
<!--允许获取网络状态,用于网络定位(无gps情况下的定位),若需网络定位功能则必选-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<!--允许获取wifi网络信息,用于网络定位(无gps情况下的定位),若需网络定位功能则必选-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

<!--允许获取wifi状态改变,用于网络定位(无gps情况下的定位),若需网络定位功能则必选-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 

<!--后台获取位置信息,若需后台定位则必选-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> 

<!--用于申请调用A-GPS模块,卫星定位加速-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 

<!--允许写设备缓存,用于问题排查-->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />  

<!--允许写入扩展存储,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<!--允许读设备等信息,用于问题排查-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

在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

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

返回顶部 示例中心 常见问题 智能客服 公众号
二维码