【问题标题】:Switching between gps and network provider [duplicate]在gps和网络提供商之间切换[重复]
【发布时间】:2011-08-11 00:17:44
【问题描述】:

在我的应用程序中,我将两个提供程序设置为精细和粗略的准确性,以侦听位置更新。我知道使用精细的位置将由 gps 提供,而使用粗略的位置将由网络提供商提供(来自此链接 http://www.alonsoruibal.com/using-two-locationproviders-on-android/)。现在,如果禁用 gps,我希望我的应用程序切换到网络,并在启用 gps 时切换回它。这可以使用onStatusChanged 方法来完成,对吗? 我的问题是,这段代码可以吗?

public static final int OUT_OF_SERVICE = 0;
public static final int TEMPORARILY_UNAVAILABLE = 1;
public static final int AVAILABLE = 2;

Criteria criteria = new Criteria();
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
providerFine = locationManager.getBestProvider(criteria, true);
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
providerCoarse = locationManager.getBestProvider(criteria, true);

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    if (provider.equals(providerFine)) {
        if (status == 0) {
            locationManager.requestLocationUpdates(providerCoarse, 60000,20,this);
        }
        if (status == 2) {
            locationManager.requestLocationUpdates(providerFine, 60000, 20, this);
        }
    }// provider == fine
}

而且,如果已经请求更新,(在我的代码之前的某个地方,我没有把它放在这里)(对于两个提供者),如果我在这个 onStatusChanged 方法中再次请求它们是否可以。还是我必须先删除更新?

【问题讨论】:

    标签: android networking gps switching


    【解决方案1】:

    我觉得很好。我建议在添加之前删除任何更新侦听器。保持干净和一致。

    【讨论】:

    • 好的,谢谢你,我想知道这一点。谢谢
    • @Sandra 您能否确认切换工作正常,我正在尝试完成类似的任务。
    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多