gpt4 book ai didi

android - *被动*收听 gps 位置更新

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:10 29 4
gpt4 key购买 nike

我想做的是以下内容:一个服务,持续监听 gps(是的:JUST gps)位置更新而不主动请求它们 - 即这个应用程序不应该消耗额外的资源电池生命周期或 CPU 时间,直到其他应用程序请求/接收 GPS 位置更新。那么我的应用程序应该执行一些功能。在此之后,它应该回到“ sleep ”状态,等待其他应用程序请求下一个 gps 定位...

我已经读过这篇文章http://android-developers.blogspot.de/2011/06/deep-dive-into-location.html但这似乎有不同的重点。实际上,我在这里有点迷路......一个人将如何使用这个被动位置提供者?我无法让它工作。

到目前为止我的代码:我有这个注册位置监听器的(远程)服务:

public class MyService extends Service
{
LocationManager locationManager;

@Override
public IBinder onBind(Intent intent)
{
return serviceBinder;
}

private final IMyService.Stub serviceBinder = new IMyService.Stub()
{};

@Override
public void onCreate()
{
super.onCreate();

Log.d(Config.LOGTAG, "service started");

locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 0, 0, new GPSLocationListener());
}

@Override
public void onDestroy()
{
super.onDestroy();

Log.d(Config.LOGTAG, "service destroyed");
}

public class GPSLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location location)
{
Toast.makeText(getBaseContext(), "GPS FIX RECEIVED: " + location.getLongitude() + " : " + location.getLatitude(), Toast.LENGTH_LONG).show();
Log.d(Config.LOGTAG, "GPS FIX RECEIVED: " + location.getLongitude() + " : " + location.getLatitude());
}

@Override
public void onProviderDisabled(String arg0)
{
Log.d(Config.LOGTAG, ":(");
}

@Override
public void onProviderEnabled(String arg0)
{
Log.d(Config.LOGTAG, ":)");
}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2)
{
Log.d(Config.LOGTAG, ":/");
}
}
}

不幸的是,这根本不起作用:该服务是根据日志启动的,但是当我例如在启用 gps 的情况下打开谷歌地图并在那里定位位置,位置监听器不会被“通知”(即不记录任何内容)

如何正确地做到这一点?

最佳答案

我想知道它不起作用是因为没有接收到被动位置,还是代码不起作用。所以我要做的第一件事就是开始监听网络和 GPS 位置(用于测试)并确保它们到达。如果他们这样做,则表明 Google map 正在使用缓存位置,而不是发起被动位置广播。

如果您没有获得任何位置,则需要检查您的代码并使其与 GPS/网络一起工作,然后再转到被动位置。

关于android - *被动*收听 gps 位置更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9927674/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com