2

我正在使用 Android 2.3.1 项目使用 LocationManager.GPS_PROVIDER 获取当前位置。

这是我的代码

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager locManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
    LocationListener locListener = new BTILocationListener();

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
}

public class BTILocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location loc) {
        Log.d("BTILocation", "Inside onLocationChanged() ---");

        if (loc != null) {
            double latitude = loc.getLatitude();
            double longitude = loc.getLongitude();

            String locationstr = "Latitude = " + latitude + " longitude = "  +longitude;

            Log.d("BTILocation", locationstr);



        }
    }

    @Override
    public void onProviderDisabled(String provider) {
        Toast.makeText(getApplicationContext(), "GPS Disabled", Toast.LENGTH_SHORT).show();
        Log.w("BTILocation", "GPS is Disabled");
    }

    @Override
    public void onProviderEnabled(String provider) {
        Toast.makeText(getApplicationContext(), "GPS Enabled", Toast.LENGTH_SHORT).show();
        Log.w("BTILocation", "GPS is Enabled");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}

我使用的权限集 -

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

我使用开放的 telnet 连接

telnet localhost 5544
geo fix 12 22

我在 logcat 上看到以下错误 -

E/GpsLocationProvider(   75): native_start failed in startNavigating()

onLocationChanged(location loc) 返回的位置对象在 2.3.1 上始终为 null。

相同的代码在 Android 2.1 和 4.0 中运行良好。请帮我解决这个问题,我试过谷歌搜索,但我在任何地方都找不到解决方案。谢谢!我没有与 Android API 级别 7 兼容的 Google API,有人知道如何下载吗?

4

2 回答 2

0

这似乎是平台 2.3 的一个已知问题,我使用 android SDK 管理器下载了平台 2.2 和 2.1 的 Google API。只需选中过时的复选框即可下载所需的软件包。

于 2012-04-07T14:11:36.993 回答
0

我在 API 级别 17 中遇到了与 4.4.2 相同的错误。虽然这是零星的,但并不清楚是什么解决了这个问题。我确实重新启动了模拟器,系统所有常用的东西,没有任何帮助。

但是我打开了另一个模拟器并修复了它们。

于 2013-05-07T21:17:57.630 回答