雨否功能设计分析
- 通过高德定位SDK获取定位信息
- 通过聚合SDK天气接口获取天气数据
- 加入ShareSDK将天气数据分享到其他平台
高德SDK获取定位信息
- 下载定位SDK
- 申请KEY
- 环境配置
- 获取位置信息
下载定位SDK
高德定位SDK下载地址
高德定位SDK API地址
http://lbs.amap.com/Public/reference/AMap_Location_API_Doc_V1.4.0_20150902/
申请KEY
首先你要先要申请账号,淘宝账号也能用毕竟是阿里旗下,然后申请成为开发者。
http://lbs.amap.com/api/android-location-sdk/summary/
具体看高德的文档吧,高德的文档写的很清晰,包括环境配置,demo演示都有很清楚地文档
环境配置
- 将下载下来的jar包导入工程目录下的libs目录
在工程的“AndroidManifest.xml”文件如下代码中添加您的用户 Key。
<application android:icon="@drawable/icon" android:label="@string/app_name" > <meta-data android:name="com.amap.api.v2.apikey" android:value="请输入您的用户Key" /> <activity android:name="com.amap.demo.LocationManager" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
添加权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
如果出现问题,clean以下工程,或者检查一下包有没有勾选上。
获取位置信息
notice:定位SDK在黑屏和锁屏状态不进行位置更新
advice:建议在使用高德定位SDK之前,先了解一下Android自带的定位方式
Android本身提供的定位方式包括GPS定位和网络定位,高德Android SDK提供给我们的定位方式包含了混合定位、GPS定位和网络定位(基站+WiFi)。 混合定位根据手机的状态来自行判断使用网络或者GPS
可以通过LocationManagerProxy.setGpsEnable(false)来设置不启动GPS定位
获取位置数据的方法为
requestLocationData(String provider, long minTime, float minDistance, AMapLocationListener listener)
* provider:选择网络定位 GPS定位 或者混合定位
* minTime:位置变化的通知时间,单位为毫秒。 -1只定位一次
* minDistance:位置变化的通知距离,单位米
* listener:监听器
GPS定位时根据time和distance来更新,网络定位是根据time更新。