所有服务的Android位置监听器

我找到了很多创建位置监听器的示例,您可以在其中提供特定的提供程序,如下所示:
LocationManager lm =
    (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
但是,我不需要一个精确的位置,但我会尽力而为。有没有办法创建一个在给定时间内最佳可用的侦听器,而无需为每个提供程序创建侦听器? 例如使用GPS,如果可用,如果没有,网络等。此外,这是一个小部件,所以我不想检查什么是可用的,然后创建一个监听器,因为小部件将持续很长时间并且可能通过启用/禁用提供商生活。 谢谢您的帮助     
已邀请:
你考虑过使用
PASSIVE_PROVIDER
吗?结合
getLastKnownLocation()
可能会让你达到你想要的大部分......你最初会打电话给
getLastKnownLocation()
建立一个位置,如果一个人已经知道该设备,那么
PASSIVE_PROVIDER
会听取来自任何位置提供商的更新(即,从设备上的任何其他应用程序触发的位置请求)。 仍然可能存在没有其他应用程序请求位置的情况,因此您可能希望使用
GPS_PROVIDER
NETWORK_PROVIDER
触发至少一个初始位置修复。     

要回复问题请先登录注册