好久没写东西了,一直在忙着学 React native
。
今天给 Android
导入百度地图
的时候遇见定位监听不回调的问题,记录一下。
电脑系统:Mac OS 10.12.4
IDE: Android Studio 2.1.2
JRE: 1.8.0_121-b13 x86_64
手机:Mi-4c
Android Version: 5.1.1LMY47V
1.确定 百度key
设置正确
meta-data
要放在 application
里面。
1 2 3 4 5
| <application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> </application>
|
2.确定权限都添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <!-- 这个权限用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!-- 这个权限用于访问GPS定位--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--> <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> <!-- 访问网络,网络定位需要上网--> <!-- SD卡读取权限,用户写入离线定位数据--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
|
3. 需要设置 service
也放在 application
里面,后面的版本号与导入的 百度SDK
版本号一致。
1 2 3 4 5 6 7
| <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> <intent-filter> <action android:name="com.baidu.location.service_v4.3" > </action> </intent-filter> </service>
|
参考
百度官方文档
http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=10847
http://bbs.csdn.net/topics/390803526