title: 快速入门
你可以通过一次简单的位置同步的来了解 Realtime Location 的用法。
环境准备
- 支持 Android Studio 1.4 以上
- 支持 JDK 7.0 以上版本
- 支持 Android 手机系统 4.0.3 以上版本,即 Android SDK 15 以上版本
1. 创建应用
首先,你需要在控制面板中创建应用。
2. 安装 SDK
SDK 的安装方式有两种,你可以任选其一:
- 使用 Maven
|
- 使用 Gradle
在build.gradle中添加:
|
如果出现文件重复导致的编译错误,可以选择在build.grade中添加packagingOptions:
android {
...
packagingOptions {
exclude 'META-INF/services/com.fasterxml.jackson.core.ObjectCodec'
exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.properties'
exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.xml'
exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'
exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.xml'
exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.properties'
exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.properties'
exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'
exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.xml'
exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.properties'
exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.xml'
exclude 'META-INF/maven/com.wilddog.client/wilddog-core-android/pom.xml'
exclude 'META-INF/maven/com.wilddog.client/wilddog-core-android/pom.properties'
exclude 'META-INF/maven/com.wilddog.client/wilddog-auth-android/pom.xml'
exclude 'META-INF/maven/com.wilddog.client/wilddog-auth-android/pom.properties'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/notice'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license'
exclude 'META-INF/license.txt'
}
}
3. 配置 Android 权限
在 AndroidMainfest.xml 文件中添加:
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
<application
...
>
<!-- 设置高德key -->
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="高德key" />
<!-- 定位需要的服务 -->
<service android:name="com.amap.api.location.APSService" >
</service>
</application>
4. 初始化 Wilddog Location 服务
// 初始化
WilddogOptions options = new WilddogOptions.Builder().setSyncUrl("https://<wilddog appId>.wilddogio.com").build();
WilddogApp.initializeApp(this, options);
SyncReference ref = WilddogSync.getInstance().getReference();
WilddogLocation location = new WilddogLocation(ref);
5. 位置上传
开启位置上传之后,你可以监听的 Key 的位置变化。
startTracingPosition(String key)
方法可以根据 Key 向云端持续上传设备的位置,如果 Key 不存在,云端会自动创建。默认为 5s 上传一次位置数据。
location.startTracingPosition("key");
6. 位置监听
addPositionListener(String key, PositionListener listener)
用于实时获取指定 Key 的最新位置信息。
location.addPositionListener("key", new Location.PositionListener() {
@Override
public void onDataChange(String key, Position position) {
Log.e(TAG, "current position"+position );
}
@Override
public void onCancelled(SyncError syncError) {
}
});