维智 Android 定位SDK
获取位置
获取定位数据
首先,声明Service组件
请在application标签中声明service组件,每个app拥有自己单独的定位service。
<!-- 必选-->
<service android:name="com.wayz.location.WzService"></service>
然后,声明权限
Android 6.0及以上系统可以参考Android 6.0权限说明章节。
<!--用于进行网络定位-->
<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>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<!--如果您的应用需要后台定位权限,且有可能运行在Android Q设备上,并且设置了target>28,必须增加这个权限声明-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
最后,设置维智KEY
在application标签中加入:
<meta-data android:name="com.wayz.location.appkey" android:value="wz_key" />
代码实现
如下几行代码可以帮助您实现最基础的定位功能
private lateinit var client: WzLocationClient
private lateinit var option: WzLocationClientOption
private fun initLocationClient() {
option = WzLocationClientOption()
// 回调间隔
option.interval = 5000
option.isFastLocation = false
option.setOnceLocate(false)
client = WzLocationClient(this@BasicLocActivity, option)
client?.startLocation(this@BasicLocActivity)
}
override fun onLocationReceived(location: WzLocation) {
// 定位结果返回
}
override fun onLocationError(exception: WzException) {
tv.text = StringBuilder().append("数据异常:").append(exception.errorMessage).toString()
}