java - 我如何在Android中获取手机的经度,纬度?

标签 java android gps location

网上看了一些教程,发现LocationManager就是这样做的。 这是我在网上找到的代码。但是,我不明白。为什么我不能得到长/纬度?为什么要经历所有“改变”位置的事情......

lm=(LocationManager)this.getSystemService(LOCATION_SERVICE);  
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10, 10, new LocationListener(){

        @Override
        public void onLocationChanged(Location location) {                          
             Log.d("a","onLocationChanged: lat="+location.getLatitude());
             Log.d("a","onLocationChanged: lat="+location.getLongitude());                 
        }

        @Override
        public void onProviderDisabled(String provider) {
             Log.d("a","onProviderDisabled: " +provider);  
        }

        @Override
        public void onProviderEnabled(String provider) {
             Log.d("a","onProviderEnabled: " +provider);
        }

        @Override
        public void onStatusChanged(String provider, int status,Bundle extras) {
             Log.d("a","onStatusChanged: " +provider + status);   
        }

    }); 

顺便说一句,这段代码不起作用。当我在计时器中运行它时......没有任何反应。什么都没有记录。我只想要经度纬度!!

最佳答案

LocationManager 可以返回最后一个已知位置,但这不是很精确,因此您必须请求位置更新并等待第一个。然后您可以继续接收它们或取消它们。您可以请求网络和 GPS 更新。

如果您使用手机测试代码,则必须等待 GPS 定位,这可能需要一段时间。网络提供商应该更快。

如果您使用 Eclipse , 然后你必须使用 DDMS 发送人工 GPS 更新.您无法从模拟器测试网络提供商(您永远不会收到更新)。

关于java - 我如何在Android中获取手机的经度,纬度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265502/

相关文章:

java - 如何在android studio中将堆栈从一个 Activity 传递到另一个 Activity

java - 我的自定义 ViewGroup 不会在 ScrollView 内滚动

java - 我如何根据 GPS 位置在网络服务器和 Android 应用程序之间进行交互?

java - Java备份MySQL数据库

java - 使用 URI 在 Activity 中显示图像

android - 阅读所有联系人(包括从 facebook 等导入的)

ios - 按位置排序 plist

Android DDMS GPS位置已插入,但系统中的任何地方都没有反应

java - 从另一台机器通过java连接MySQL数据库

java - 如何修改 `@SQLUpdate` 以将 `Joda` `DateTime` 对象转换为 `h2` 可读时间戳?