本文介绍了在android系统的GPS定位更新不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
从Android的官方网站我已经下载了位置服务的例子和放大器;并在真实的设备上运行。每次onLocationChanged方法返回网络的纬度和放大器;经度但不准确的GPS定位。如何实现从全新的Android位置API精确的GPS位置。
下面是我的服务,code
包com.example.locationservice;进口android.app.Service;
进口android.content.Context;
进口android.content.Intent;
进口android.location.Location;
进口android.location.LocationListener;
进口android.os.Bundle;
进口android.os.IBinder;
进口android.util.Log;进口com.google.android.gms.common.ConnectionResult;
进口com.google.android.gms.common.GooglePlayServicesClient;
进口com.google.android.gms.common.GooglePlayServicesUtil;
进口com.google.android.gms.location.LocationClient;
进口com.google.android.gms.location.LocationRequest;公共类MDFYLocationUpdate扩展服务实现
LocationListener的,
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
com.google.android.gms.location.LocationListener { LocationClient mLocationClient;
私人LocationRequest mLocationRequest;
公共静态语境℃;
最后弦乐BROADCAST_ACTION =CURRENT_LOCATION;
公共静态最后弦乐TAG =位置;
//每秒毫秒
私有静态最终诠释MILLISECONDS_PER_SECOND = 1000;
以秒为单位更新//频率
公共静态最终诠释UPDATE_INTERVAL_IN_SECONDS = 5;
以毫秒为单位//更新频率
私有静态最后的更新周期长= 10000;
// MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;
//最快的更新频率,以秒为单位
私有静态最终诠释FASTEST_INTERVAL_IN_SECONDS = 1;
//毫秒的快速频率上限
私有静态最后长FASTEST_INTERVAL =
MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS; @覆盖
公众的IBinder onBind(意向意图){
// TODO自动生成方法存根
返回null;
}
@覆盖
公共无效的onCreate(){
// TODO自动生成方法存根
super.onCreate();
mLocationRequest = LocationRequest.create(); mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
//设置更新间隔为5秒
mLocationRequest.setInterval(更新周期);
//最快的更新间隔设置为1秒
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
servicesConnected();
mLocationClient =新LocationClient(这,这,这);
}
@覆盖
公共无效的onDestroy(){
// TODO自动生成方法存根
super.onDestroy();
}
@覆盖
公共无效onConnected(捆绑connectionHint){
// TODO自动生成方法存根 Log.d(TAGonconnected);
mLocationClient.requestLocationUpdates(mLocationRequest,这一点);
}
@覆盖
公共无效onDisconnected(){
// TODO自动生成方法存根
Log.d(TAGonsisconnect);
//销毁当前位置客户端
mLocationClient = NULL;
}
@覆盖
公共无效onConnectionFailed(ConnectionResult结果){
// TODO自动生成方法存根 } 私人布尔servicesConnected(){
//检查谷歌播放服务提供
INT结果code = GooglePlayServicesUtil.isGooglePlayServicesAvailable(本);
//如果谷歌Play服务的可
如果(ConnectionResult.SUCCESS ==结果code){ 返回true;
}其他{ 返回false;
}
} @覆盖
公共无效onLocationChanged(地点){
// TODO自动生成方法存根
Log.d(TAGonLocationChanged);
Log.d(TAG,纬度=+ location.getLatitude()+LNG =+ location.getLongitude());
Logger.writeLog(纬度=+ location.getLatitude()+LNG =+ location.getLongitude()+==+ BasicDeviceInformation.getCurrentDate()); }
@覆盖
公众诠释onStartCommand(意向意图,诠释标志诠释startId){
// TODO自动生成方法存根
Log.d(TAGonStartCommand);
mLocationClient.connect();
返回super.onStartCommand(意向,旗帜,startId);
}
@覆盖
公共无效onProviderDisabled(字符串提供商){
// TODO自动生成方法存根 }
@覆盖
公共无效onProviderEnabled(字符串提供商){
// TODO自动生成方法存根 }
@覆盖
公共无效onStatusChanged(字符串提供商,INT地位,捆绑演员){
// TODO自动生成方法存根 }
}
解决方案
不知道用户将回到SO与否,代表他如此张贴一个答案为别人谁遇到这个问题。
PS: - 此答案由用户自己建议,但在错误的地方,所以张贴在代表他的
这篇关于在android系统的GPS定位更新不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!