android获取解析GPS数据
16lz
2021-12-04
package title.navi.Location.Impl;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.location.GpsStatus.NmeaListener;import android.location.LocationProvider;import android.os.Bundle;import android.util.Log;import android.widget.Toast;public class NaviLocation {Context m_ctx;LocationManager m_locationManager;Location m_location;private boolean m_nmea_started = false;private NaviApp m_naviApp;class LocationDebug {}public NaviLocation(Context ctx, NaviApp naviApp) {m_ctx = ctx;m_naviApp = naviApp;}/** * 初始化 * * @return */public int initialize() {// 创建LocationManger对象m_locationManager = (LocationManager) m_ctx.getSystemService(Context.LOCATION_SERVICE);// 获取最后一次GPS定位的位置并上传m_location = m_locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);if( null != m_location ){UploadPos(m_location);}// 绑定监听,有4个参数// 参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种// 参数2,位置信息更新周期,单位毫秒// 参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息// 参数4,监听// 备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新// 1秒更新一次,或最小位移变化超过1米更新一次;// 注意:此处更新准确度非常低,推荐在service里面启动一个Thread// 在run中sleep(10000);然后执行handler.sendMessage(),更新位置m_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,0, mLocationListener);return 0;}/** * 释放 * * @return */public int uninitialize() {return 0;}/** * 开始nmea接收标志 */public void start_receive_nmea() {m_nmea_started = true;}// LocationListener,位置监听,监听位置变化,监听设备开关与状态LocationListener mLocationListener = new LocationListener() {/** * 位置信息变化时触发 */@Overridepublic void onLocationChanged(Location location) {// 上传当前位置if (location != null) {m_location = location;UploadPos(location);}}/** * GPS禁用时触发 */@Overridepublic void onProviderDisabled(String provider) {}/** * GPS开启时触发 */@Overridepublic void onProviderEnabled(String provider) {// Location location=lm.getLastKnownLocation(provider);}/** * GPS状态变化时触发 */@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {switch (status) {// GPS状态为可见时case LocationProvider.AVAILABLE:Log.i("NavJava", "当前GPS状态为可见状态");break;// GPS状态为服务区外时case LocationProvider.OUT_OF_SERVICE:Log.i("NavJava", "当前GPS状态为服务区外状态");break;// GPS状态为暂停服务时case LocationProvider.TEMPORARILY_UNAVAILABLE:Log.i("NavJava", "当前GPS状态为暂停服务状态");break;}}};private boolean UploadPos(Location location){return true;}private String getGPSTime(Location location){String str = "0";Date date = new Date(location.getTime());SimpleDateFormat dataFormat = new SimpleDateFormat("yyyyMMddHHmmss");str=dataFormat.format(date);return str;}}
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- Python技巧匿名函数、回调函数和高阶函数
- python list.sort()根据多个关键字排序的方法实现
- 判断Android的网络状态
- android利用ListView滑动刷新
- Android简单实现透明状态栏、去除标题
- Android(安卓)API中文(42)—— ListView
- Android(安卓)自定义Gallery
- Android实现点击某个按钮指定位置弹出布局