3

我有一个 android 应用程序,我想获取位置。

为此,我遵循 android 文档,但它不起作用。永远不会调用 onLocationChanged 方法。

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

    LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
    {
        Toast.makeText(this, "GPS available", 3000).show();
    }
    else
    {
        Toast.makeText(this, "GPS not available", 3000).show();
    }

    LocationListener locationListener = new LocationListener()
    {
        public void onLocationChanged(Location location)
        {
            System.out.println("RECEIVED LOCATION");
        }

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

        public void onProviderEnabled(String provider)
        {
        }

        public void onProviderDisabled(String provider)
        {
        }


    };

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
}

在 AndroidManifest.mf 我已经包含了权限:

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

我正在尝试使用 DDMS 控制台中的模拟器测试应用程序。我设置了经度和纬度,然后按下发送按钮,但是没有调用 onLocationChanged 方法。

我做错了什么?

预先感谢

4

2 回答 2

0

拨打电话:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10f, locationListener);
于 2012-09-05T14:55:47.090 回答
0

我发现了问题。

我正在使用 Android 2.3.3 进行测试。并且有一个错误。使用 Google API(级别 10)进行测试非常完美。

于 2012-09-05T16:17:26.333 回答