【发布时间】:2012-03-29 23:50:43
【问题描述】:
实际上我的问题是有时我可以获取位置,有时我无法在 Android 真实设备上获取位置。我使用以下代码获取位置,
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
我需要在我的应用程序启动时获取位置。我不知道为什么有时它会失败。如何解决这个问题?
【问题讨论】:
-
你在使用 BroadCastReceiver 吗?
-
那么你是如何在应用程序启动时获取 GPS 坐标的?
-
@Android,其实我有一个类扩展
Application。我已经提到了 AndroidManifest 文件。我在那个类中使用了这段代码。 -
提高您的电源要求,并确保您测试可以获取网络或 gps 信号的位置。如果这有帮助,那么这只是传感器没有获得足够的接收以了解位置的情况。
-
jsmith 听起来不错 - GPS 可能无法接收到位置信息。尝试将设备移到室外或 GPS 连接性更强的已知位置。如果应用程序更频繁地获取位置,那么您就大功告成了。但是,如果您绝对需要一个位置,我可以建议一个
AsyncTask,它会一直尝试获取 GPS 坐标,直到最终找到一些?
标签: android mobile locationmanager android-location