【问题标题】:In requestSingleUpdate(), GPS is not getting locations in some Android OS 2.3 devices在 requestSingleUpdate() 中,GPS 无法在某些 Android OS 2.3 设备中获取位置
【发布时间】:2013-08-07 13:00:39
【问题描述】:

在我的应用程序中,我使用了 requestSingleUpdate() 方法,它在所有设备中运行良好,但在某些设备 2.3 android OS 版本中,GPS 无法获取位置。这是代码,

Intent intentp = new Intent(context, MyLocationReceiver.class);
pendingIntent = PendingIntent.getBroadcast(context, 0, intentp,PendingIntent.FLAG_UPDATE_CURRENT);
criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
provider = locationManager.getBestProvider(criteria, true);
if(provider != null)
{               
    locationManager.requestSingleUpdate(provider, pendingIntent);
}

为什么带有 GPS 提供程序的 requestSingleUpdate() 方法在某些设备上不起作用? 特别不适用于 2.3.6 操作系统版本 GT - S5830 型号三星设备和 MicroMax A57。

【问题讨论】:

    标签: android gps


    【解决方案1】:

    更喜欢 LocationClient 而不是 LocationManager 而不是 retrieving the current location。

    它使用Google Play Services(几乎 100% 的设备都可用)它更强大,通常可以解决许多问题。自从我做出转换以来,我从来没有遇到过任何位置问题。

    【讨论】:

    • 这是一个非答案。 Google Play 服务应该在“几乎 100%”可以通过 Play 商店下载您的应用程序的设备上可用。但它几乎可以在 0% 的其他设备上使用,包括亚马逊设备。 Play Services 不是许多开发人员的选择。遗憾的是,它只是为了获得一个围绕 Android 核心位置 API 的更强大、用户友好的包装器。
    【解决方案2】:
    criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    provider = locationManager.getBestProvider(criteria, true);
    if(provider != null)
    {               
        locationManager.requestSingleUpdate(provider, pendingIntent);
    }
    

    正在向 android 询问最佳位置提供程序,无论是 wi-fi、cell 还是 gps。如果用户没有启用定位服务,则操作系统不会知道最佳提供者,因此提供者将返回 null。

    对此您无能为力,这取决于用户的操作系统设置以及他们是否选择将位置信息提供给应用程序

    --编辑--

    在您调用 getBestProvider() 时,您只要求启用提供程序(这是您设置为 true 的方法调用中的第二个参数)。如果用户禁用了所有提供程序,您将获得 null。

    【讨论】:

    • 我已经启用了 GPS 并进行了测试,在所有设备上都可以正常工作,在某些设备上甚至启用了 GPS。
    • 已编辑答案。您具体遇到了哪些设备问题?
    • 我知道,如果禁用所有 Providers 将在 getBestProvider() 方法中变为 null。我已经提到,只有在启用 GPS 时无法获取位置。编辑了我的问题,特别是在某些设备上不起作用。
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 2012-05-11
    • 2016-01-30
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多