我的 onLocationChanged 永远不会触发

Posted

技术标签:

【中文标题】我的 onLocationChanged 永远不会触发【英文标题】:My onLocationChanged never triggers 【发布时间】:2013-12-07 10:03:02 【问题描述】:

没有找到有关如何实现此功能的完整指南。我有:

    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() 
        @Override
        public void onLocationChanged(Location location) 
            //My location changed
            myPosition = new LatLng(location.getLatitude(), location.getLatitude());
            date = new Date();

            //Update marker
            myMarker.snippet(new Timestamp(date.getTime()).toString());
            myMarker.position(myPosition);

            //Update map
            //updateMap();

            //Move camera
            mMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition));
            //mMap.animateCamera(CameraUpdateFactory.zoomTo(17));

            //Show dialog
            boxUpdate.show();

            Log.i("Map Location", "New cache for location retrived!");
        

        @Override
        public void onProviderDisabled(String provider) 
            //Required, but not in use
        

        @Override
        public void onProviderEnabled(String provider) 
            //Required, but not in use
        

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) 
            //Required, but not in use
        
    );

那么,我需要做些什么才能让它发挥作用? 我只启用了 WiFi,但我认为缓存完全是空的,不会以某种方式填满。我是否错过了让它倾听的必要内容?

【问题讨论】:

【参考方案1】:

如果您想使用 wifi 获取位置,请更改此设置..

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener()

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener()

如果还是不行,请告诉我。

所以强迫你:)

【讨论】:

我先有那个,但也没有真正起作用。但我会再试一次。之前可能是另一个原因...我会在 10 分钟内重新发布 它似乎还没有做任何事情。我可以看到这可能仍然是必需的更改。还有什么猜测吗? 有时您可能需要重新启动设备才能正常使用此提供程序。请参阅此讨论 ***.com/q/15747543/1199602 看起来与您遇到的问题相同 我会试试看的。谢谢 嗯,还是什么都没有 =/

以上是关于我的 onLocationChanged 永远不会触发的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 GPS 提供程序的 requestLocationUpdates 永远不会调用 onLocationChanged

onLocationChanged() 永远不会由 requestLocationUpdates() 触发 - Android

可以永远不会调用 onLocationChanged 吗?

onLocationChanged 永远不会被调用 Emulator

Android Google Maps API OnLocationChanged 仅调用一次

LocationListener 适用于模拟器,而不是手机