我想知道设备上的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)
{
}
}
当我的应用程序在前台运行时工作正常,但当我关闭它时,我将不再获得更新。我想知道在卸载我的应用程序之前如何连续获取这些信息。
答案 0 :(得分:0)
您需要将其置于服务中并以粘性方式启动服务。
此外,您应该考虑使用GooglePlayServices来使用FusedLocationManager。
有关GooglePlayServices和位置的详细信息,请阅读here