繁体   English   中英

Google-map-API V2中的当前位置

[英]Current location in Google-map-API V2

我在Android应用程序中使用Google API V2。 我想获取我的当前位置并在上面添加标记。 我正在使用我的朋友设备。 当我运行代码时,它显示了我朋友的房屋位置。 我真的很震惊为什么。

谁能帮我得到我的当前位置。

那是因为您是第一次加载LastKnownLocation,因为它是您的朋友电话,它将显示您朋友的最后一个已知位置(他的房子)。

代码看起来不错,我认为您必须等到找到真正的位置。

(确保您拥有所有权限,并且gps处于开启状态)

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

当您致电locationManager.getLastKnownLocation(provider)您正在检索GPS的最后一个位置,就像您的朋友在家时所说的那样。

如果您想知道自己所在的位置,则应该只调用requestSingleUpdate一次更新,或者调用requestLocationUpdates进行连续更新。

一次使用按钮侦听器进行更新的示例:

btnupdate.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            locationManager.requestSingleUpdate(criteria, new LocationListener() {


                @Override
                public void onLocationChanged(Location location) {

                }
                @Override
                public void onProviderEnabled(String provider) {

                }
                @Override
                public void onProviderDisabled(String provider) {

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

                }
            }, getMainLooper());
        }
    });

这实现了LocationManager的侦听器,使您可以根据Location状态执行某些操作。

对于您的情况,您已经在活动上实现了侦听器,因此只需尝试调用:

locationManager.requestSingleUpdate(criteria, this);

此请求仅需一次更新即可显示您的当前位置

我要回答我的问题。 我不知道它是否对所有面临相同问题的人都有效。 我只是尝试重新启动移动设备。 重新启动后,它将获得正确的当前位置。 所以这是一个硬件问题,尽管我认为这是代码中的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM