高德 开发 Android 猎鹰SDK 入门指南
更新时间:2018年08月02日
本指南是向 Android 应用添加猎鹰SDK的快速入门指南。
第1步:下载并安装Android Studio
按照指南下载并安装 Android Studio。(注:下载地址为Google官方网站)
第2步:获取高德Key
第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。
或者您也可以前往开发指南,阅读更多相关内容。