易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Android获取解析GPS数据
Android获取解析GPS数据:
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() {
/**
* 位置信息变化时触发
*/
@Override
public
void
onLocationChanged(Location location) {
// 上传当前位置
if
(location !=
null
) {
m_location = location;
UploadPos(location);
}
}
/**
* GPS禁用时触发
*/
@Override
public
void
onProviderDisabled(String provider) {
}
/**
* GPS开启时触发
*/
@Override
public
void
onProviderEnabled(String provider) {
// Location location=lm.getLastKnownLocation(provider);
}
/**
* GPS状态变化时触发
*/
@Override
public
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;
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图