在Android应用程序中显示纬度经度位置的问题

发布于 2024-10-27 02:41:17 字数 1999 浏览 4 评论 0原文

以下是我用来查找应用程序中某个地点的纬度经度和位置的代码,但它总是显示找不到位置

我已在清单文件中添加了权限

{ LocationManager locManager; setContentView(R.layout.main); locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000L,500.0f, locationListener);
    Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    if(location != null)                                
     {
        String param = (String)locManager.getProviders(true).get(0);
        Location loc = locManager.getLastKnownLocation(param);

      double latitude = location.getLatitude();
      double longitude = location.getLongitude();
     }  
}

    private void updateWithNewLocation(Location location) 
    {
            TextView myLocationText = (TextView)findViewById(R.id.widget52);
            String latLongString = " ";
            if (location != null) 
            {
                double lat = location.getLatitude();
                double lng = location.getLongitude();
                latLongString = "Lat:" + lat + "\nLong:" + lng;

            } 
            else 
            {
                latLongString = "No location found";
            }
             myLocationText.setText("Your Current Position is:\n" +
                    latLongString);
    }

        private final LocationListener locationListener = new LocationListener() 
        {
            public void onLocationChanged(Location location) 
            {
                updateWithNewLocation(location);
            }

            public void onProviderDisabled(String provider) 
            {
                updateWithNewLocation(null);
            }

            public void onProviderEnabled(String provider) 
            {
            }

            public void onStatusChanged(String provider, int status, Bundle extras) 
            {
            }
        };

}

请帮助我...

Following is the code which i am using to find the latitude longitude and location of a place in my app, but it always show no location found

I have added the permissions in manifest file

{
LocationManager locManager;
setContentView(R.layout.main);
locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000L,500.0f, locationListener);
    Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    if(location != null)                                
     {
        String param = (String)locManager.getProviders(true).get(0);
        Location loc = locManager.getLastKnownLocation(param);

      double latitude = location.getLatitude();
      double longitude = location.getLongitude();
     }  
}

    private void updateWithNewLocation(Location location) 
    {
            TextView myLocationText = (TextView)findViewById(R.id.widget52);
            String latLongString = " ";
            if (location != null) 
            {
                double lat = location.getLatitude();
                double lng = location.getLongitude();
                latLongString = "Lat:" + lat + "\nLong:" + lng;

            } 
            else 
            {
                latLongString = "No location found";
            }
             myLocationText.setText("Your Current Position is:\n" +
                    latLongString);
    }

        private final LocationListener locationListener = new LocationListener() 
        {
            public void onLocationChanged(Location location) 
            {
                updateWithNewLocation(location);
            }

            public void onProviderDisabled(String provider) 
            {
                updateWithNewLocation(null);
            }

            public void onProviderEnabled(String provider) 
            {
            }

            public void onStatusChanged(String provider, int status, Bundle extras) 
            {
            }
        };

}

pls help me...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花之痕靓丽 2024-11-03 02:41:17

我已将您的代码放入 Android 项目中并在模拟器上运行它,它似乎工作正常。

我会将代码更改为首先检查最后已知的位置,然后之后检查位置更新。

Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

如果该位置为空,或者对于您的需求来说太陈旧(时间戳),您可以开始请求位置更新。 (目前,您首先从 GPS 请求位置更新,然后决定检索其最后的已知位置)。这可能会导致位置管理器停止查询 GPS。

此外,您还需要确保满足以下条件:

对于 GPS 提供商,请确保在清单中添加以下权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

确保 GPS 已打开,以便您有足够的 GPS 覆盖范围。 strong>

通过检查通知栏中的 GPS 图标来执行此操作

在真实设备上测试

虽然测试 GPS 位置侦听器部分通过模拟器进行,但实际设备的行为始终会有所不同。

在模拟器上进行调试

可以使用模拟器完成基本的 GPS 测试。在您的位置侦听器中放置一个断点,并使用 DDMS 透视图将一些 GPS 坐标发送到您的 AVD 图像。

I've put your code in an Android project and ran it on the emulator and it seems to be working fine.

I would change the code to first check for a lastknown location, and after that check for location updates.

Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

If that location is null, or too stale (timestamp) for your needs, you can start requesting location updates. (currently, you're first requesting location updates from the GPS, and then decide to retrieve its lastknownlocation). This might cause the location manager to stop querying the GPS.

Also you need to ensure the following is in place :

For GPS Provider, make sure the following permission is put in the manifest

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Ensure the GPS is turned on that you have sufficient GPS coverage.

Do this by checking for the GPS icon in your Notification bar

Test on a real device

Although testing GPS location listeners works partly through the emulator, the behavior of an actual device will always be different.

Debug on the emulator

Basic GPS testing can be done using the emulator. Put a breakpoint in your locationlistener, and use the DDMS perspective to send some GPS coordinates to your AVD image.

似狗非友 2024-11-03 02:41:17

@Siva,您的问题在于 UI 线程,因为您的更新来自不同的线程。

要验证这是否是 UI 问题,请在收到更新时添加 toast 或 Log cat 消息。

一旦您知道 UI 问题,请尝试使用 HandlerpostInvalidate() UI。

@Siva, your problem is with the UI thread, as your updates are from different thread.

To verify if this is the UI problem, put a toast or Log cat the message when you receive an update.

Once you know that UI problem, then try using Handler to postInvalidate() the UI.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文