出现此问题比较坑,我也出现了,反复测试,在排除网络环境的情况下,还是出现此问题。后来终于弄好了,结果真的比较坑
我用的是 locSDK_4.2.jar ,对应的so文件是 liblocSDK4d.so,这些都可以在官网下载
问题其实主要在 AndroidManifest.xml 配置上
注意以下几点
1.服务要配置 <service
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
<intent-filter>
<action android:name="com.baidu.location.service_v2.2" >
</action>
</intent-filter>
</service>
2.apikey要配置,
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="xxxxxxxxxxxxxxxx" />
以上二点大家都应做到了。
3. 配置权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" > </uses-permission>
<uses-permission android:name="android.permission.READ_LOGS" > </uses-permission>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
上面的权限配置按着配置就可以了。
总结一下,之前我就差
<uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission>
这行,读取电话状态的权限。
就导致了定位结果是4.9E -324的问题,害得我搞了半天,加上后就正常获得定位结果了;然后我去掉这行,结果又不正常了,可以得出结论,是这行影响到了定位的结果。
希望对遇到此问题的朋友给予帮助,少走弯路。至于定位与电话状态的读取有什么关系,我也不太明白。