2

我想知道设备上的 GPS 何时开启,位置何时改变。

这是我所做的:

LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

public class MyLocationListener implements LocationListener
{
    @Override
    public void onLocationChanged(Location loc)
    {   
        Toast.makeText( getApplicationContext(),"onlocation changed",Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onProviderDisabled(String provider)
    {
        Toast.makeText( getApplicationContext(),"providerdisabled",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onProviderEnabled(String provider)
    {
        Toast.makeText( getApplicationContext(),"provideenabled",Toast.LENGTH_SHORT).show();
    }

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

    }
}

当我的应用程序在前台运行时它工作正常,但是当我关闭它时,我将不再获得任何更新。在卸载我的应用程序之前,我想知道如何持续获取这些信息。

4

1 回答 1

0

您需要将其放入服务中并启动服务粘性。

您还应该考虑通过使用 GooglePlayServices 来使用 FusedLocationManager。

有关 GooglePlayServices 和位置的更多信息,请阅读此处

于 2013-07-11T10:31:15.267 回答