快速入门 编辑文档

你可以通过一次简单的位置同步的来了解 Realtime Location 的用法。


环境准备



  • 支持 Android Studio 1.4 以上

  • 支持 JDK 7.0 以上版本

  • 支持 Android 手机系统 4.0.3 以上版本,即 Android SDK 15 以上版本


1. 创建应用

首先,你需要在控制面板中创建应用。

2. 安装 SDK

SDK 的安装方式有两种,你可以任选其一:

  • 使用 Maven
<dependency>
<groupId>com.wilddog.location</groupId>
<artifactId>wilddog-location-android</artifactId>
<version>0.1.2</version>
</dependency>
  • 使用 Gradle

在build.gradle中添加:

dependencies {
compile 'com.wilddog.location:wilddog-location-android:0.1.2'
}

如果出现文件重复导致的编译错误,可以选择在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) {
}
});
野狗新手?
立即注册,为你提供安全可靠的实时通信云服务。
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题