入门指南 最后更新时间: 2023年12月15日
本指南是向 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.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。
或者您也可以前往开发指南,阅读更多相关内容。