0

我有一个小应用程序,我在其中使用适用于 Android 的 google maps api。我有一种方法可以为位置管理器找到最佳提供者:

public String getBestProvider(){
    String result = LocationManager.NETWORK_PROVIDER;;

    try {

        String value = LocationManager.NETWORK_PROVIDER;

        List<String> proveedores = locationManager.getAllProviders();           


        //Try to set the position with the gps
        if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            value = LocationManager.GPS_PROVIDER;
        }
        else{
             Criteria criteria = new Criteria();
             value = locationManager.getBestProvider(criteria, true);                
        }
        Toast.makeText(this, value, 1000);

        result = value;

    } catch (Exception e) {
        e.printStackTrace();
    }

    return result;
}

我这样做是为了强制我的手机在启用时将“GPS_PROVIDER”作为最佳提供商(我的手机是三星 Galaxy S2,搭载 Android 4.1.2)。这是因为使用命令“locationManager.getBestProvider(criteria, true);” 当 GPS 处于活动状态时,它没有将其返回为最佳提供者。

好吧,通过这种方式在我的手机上工作正常。但是我有一台平板电脑(Xtreme X81,Android 4.2.2,没有 gps),我安装了我的应用程序。我已经在平板电脑上测试过,它不起作用。我无法调试应用程序,因为我没有平板电脑的驱动程序,但是使用 Toast 插入消息我发现这种方法将“GPS_PROVIDER”作为最佳提供者返回给我。为什么要退货?有没有最简单的方法来改进代码以获得任何设备的最佳提供商?

预先感谢,问候。

4

0 回答 0