onLocationChanged 从未调用过?
Posted
技术标签:
【中文标题】onLocationChanged 从未调用过?【英文标题】:onLocationChanged never called? 【发布时间】:2014-11-23 03:22:43 【问题描述】:我正在使用精确的代码形式 developer.android.com/ 但它似乎不能 100% 工作,我昨天是相同的代码并且它工作了。我拥有所需的所有权限。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
我添加了ACCESS_COARSE_LOCATION
权限,以防万一第一次不起作用。
代码:
Log.i("DEV", "LocationManager");
// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
Log.i("DEV", "LocationListener");
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener()
public void onLocationChanged(Location location) Log.i("DEV", "onLocationChanged");
public void onStatusChanged(String provider, int status, Bundle extras) Log.i("DEV", "onStatusChanged");
public void onProviderEnabled(String provider) Log.i("DEV", "onProviderEnabled");
public void onProviderDisabled(String provider) Log.i("DEV", "onProviderDisabled");
;
Log.i("DEV", "Register listener");
// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
我打开移动数据或wifi总是一样的日志输出:
09-28 20:06:56.816 21408-21408/smst.dev.mav.com I/DEV﹕ LocationManager
09-28 20:06:56.826 21408-21408/smst.dev.mav.com I/DEV﹕ LocationListener
09-28 20:06:56.826 21408-21408/smst.dev.mav.com I/DEV﹕ Register listener
09-28 20:06:56.826 21408-21408/smst.dev.mav.com I/DEV﹕ onProviderDisabled
谢谢!
【问题讨论】:
虽然已经很晚了但是希望这个评论可以帮到别人,看看这个链接:lengrand.fr/2013/10/… 【参考方案1】:Android 有两个位置提供程序 - GPS 和粗略(网络)位置。 您需要分别启用两者才能使用每一个。 看看这里:
您可以使用以下方法检查它们是否已启用:
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
【讨论】:
以上是关于onLocationChanged 从未调用过?的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 后台服务中使用 LocationServices.FusedLocationApi.requestLocationUpdates...onLocationChanged 从未调用