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 从未调用

GPS提供商不返回我当前的位置android

onLocationChanged 未被调用

onLocationChanged() 未调用

onLocationChanged 在每个时间间隔调用两次

在 Android 中未调用 onlocationchanged