【问题标题】:Android Google Maps v2 - OnMyLocationChangeListener - What does it need exactly?Android Google Maps v2 - OnMyLocationChangeListener - 它到底需要什么?
【发布时间】:2013-04-01 23:35:17
【问题描述】:

因为不想混淆,所以我会尝试用SDK示例代码来解释。

一切正常 - 除了"onMyLocationChange" 回调。

 - API 16 & 17 tested 
 - updated Play Services Rev.5 
 - Tested with ICS Tablet&Phone

我刚刚添加了接收位置更新所需的内容:

UiSettingsDemoActivity implements OnMyLocationChangeListener

附在地图上:

mMap.setOnMyLocationChangeListener(this);

并实现回调

@Override
public void onMyLocationChange(Location arg0) {
    ....
}

但是这个方法永远不会被触发。

2 月 26 日的发布说明:https://groups.google.com/d/msg/google-maps-android-api-notify/va_IsjNu5-M/QPtoSn69UMgJ - 所以我认为这是可行的。

编辑:http://code.google.com/p/gmaps-api-issues/issues/detail?id=4644

【问题讨论】:

    标签: android google-maps-android-api-2


    【解决方案1】:

    您是否在应用程序中添加了LocationListener?:

    locationListener = new MyLocationListener();  
    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    

    我的位置监听器:

    public class MyLocationListener implements LocationListener 
    {
    static final String TAG = MyLocationListener.class.getSimpleName();
    @Override
    public void onLocationChanged(Location location) {
         SGTasksListAppObj.getInstance().currentUserLocation = location;
         Log.d(TAG, "New location was set to currentUserLocation: "+location.toString());
    
    }
    
    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub
    }
    
    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
    }
    
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
    }
    
    }
    

    更新:

    也许你应该试试:

    map.setMyLocationEnabled(boolean boolean);
    

    方法,并检查此链接:

    How to get My Location changed event with Google Maps android API v2?

    【讨论】:

    • link 这是自 Rev.5 (26.02.2013) 起正式发布
    • 奇怪的是 Eclipse 无法识别此方法。我想我需要更新我的 SDK。好吧,收回我关于“没有......”的话,但是您仍然必须设置一个 loicationListener 才能收到有关位置更改的通知。
    • 我只是将我的应用程序更新到 v2 - 在 v1 中我有一个自定义 LocationListener,但我认为 google 的实现效果更好。
    • 这个方法我没用过,不知道怎么用。
    • 呵呵——它的演示:mMap.setMyLocationEnabled(((CheckBox) v).isChecked());所以是的 - 它已启用
    【解决方案2】:

    您如何测试您的位置是否发生了变化?我认为这将涉及移动或使用虚拟数据并手动更改位置。您的 GPS 需要开启吗?

    【讨论】:

    • Wifi/GPS 和定位服务已打开 - 当我打开标准的谷歌地图应用程序时,它会立即运行。我还看到一个 locapi_rpc_glue 进程正在淹没我的日志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多