小米手机Android正在搜索gps,Android:检查GPS是否正在搜索,已修复或未使用

在对GPS进行了大量测试之后,我终于找到了解决方案.当android应用程序调用位置管理器并且GPS开始搜索时,触发一个事件,并且当gps被锁定时,另一个事件被触发.以下代码显示了如何执行此操作.

locationManager = (LocationManager)mContext.getSystemService(LOCATION_SERVICE);

isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

if (isGPSEnabled) {

if (locationManager != null) {

// Register GPSStatus listener for events

locationManager.addGpsStatusListener(mGPSStatusListener);

gpslocationListener = new LocationListener() {

public void onLocationChanged(Location loc) {}

public void onStatusChanged(String provider, int status, Bundle extras) {}

public void onProviderEnabled(String provider) {}

public void onProviderDisabled(String provider) {}

};

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,

MIN_TIME_BW_UPDATES_GPS, MIN_DISTANCE_CHANGE_FOR_UPDATES_GPS,

gpslocationListener);

}

}

/ *

*这是在各种事件发生时调用的GPSListener函数

* GPS启动,GPS停止,GPS锁定

* /

public Listener mGPSStatusListener = new GpsStatus.Listener() {

public void onGpsStatusChanged(int event) {

switch(event) {

case GpsStatus.GPS_EVENT_STARTED:

Toast.makeText(mContext, "GPS_SEARCHING", Toast.LENGTH_SHORT).show();

System.out.println("TAG - GPS searching: ");

break;

case GpsStatus.GPS_EVENT_STOPPED:

System.out.println("TAG - GPS Stopped");

break;

case GpsStatus.GPS_EVENT_FIRST_FIX:

/*

* GPS_EVENT_FIRST_FIX Event is called when GPS is locked

*/

Toast.makeText(mContext, "GPS_LOCKED", Toast.LENGTH_SHORT).show();

Location gpslocation = locationManager

.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if(gpslocation != null) {

System.out.println("GPS Info:"+gpslocation.getLatitude()+":"+gpslocation.getLongitude());

/*

* Removing the GPS status listener once GPS is locked

*/

locationManager.removeGpsStatusListener(mGPSStatusListener);

}

break;

case GpsStatus.GPS_EVENT_SATELLITE_STATUS:

// System.out.println("TAG - GPS_EVENT_SATELLITE_STATUS");

break;

}

}

};

最好将GPS代码放入并作为服务来获取GPS位置信息.

每次调用GPS功能时,都会注册GPSStatus监听器. GPS_SEARCHING toast仅在GPS开始搜索时出现,GPS_LOCKED toast在GPS锁定时显示.如果我们再次呼叫GPS功能,如果GPS_EVENT_FIRST_FIX事件被锁定(显示GPS_LOCKED吐司),并且GPS已经开始搜索,它将不会显示GPS_SEARCHING toast(即GPS_STARTED事件不会触发).触发GPS_EVENT_FIRST_FIX事件后,我正在删除GPSstatus监听器更新.

当GPS_EVENT_FIRST_FIX事件被触发时,最好调用gpslastknownlocation()函数来获取最新的GPS修复.(最好查看Android开发者网站以获取更多信息).

我希望这能帮助别人……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值