因推送的业务需要,每个十分钟获取用户当前经纬度与之前的经纬度,经计算若所行距离大于一千米,则获取周边推送信息。
以下是每隔单位时间获取经纬度的具体代码:
1、所用到的jar包:locSDK_5.2.jar
2、所用到的百度so文件夹:armeabi
3、所需权限:
<!-- 这个权限用于进行网络定位 -->
<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>
<!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
</uses-permission>
4、所需配置:
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="百度AppKey" />
public class MyApp extends Application{
private int i = 0;
private LocationClient mLocClient;
public MyLocationListenner myListener = new MyLocationListenner();
public double Latitude,Longitude;
@Override
public void onCreate() {
super.onCreate();
onDoLocation();
onDoHandler();
}
public void onDoHandler(){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Log.i("my", ++i+"");
Log.i("my", "Latitude"+Latitude+","+"Longitude"+Longitude);
}
}, 1000, 1000*10);
}
public void onDoLocation(){
mLocClient = new LocationClient(this);
mLocClient.registerLocationListener(myListener);
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);// 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
mLocClient.setLocOption(option);
mLocClient.start();
}
/**
* 定位SDK监听函数
*/
public class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// map view 销毁后不在处理新接收的位置
if (location == null){
return;
}
Latitude = location.getLatitude();
Longitude = location.getLongitude();
Log.i("my", "Latitude"+Latitude+","+"Longitude"+Longitude);
}
public void onReceivePoi(BDLocation poiLocation) {
}
}
}