访问我当前位置的Android始终返回纬度:0.0和经度:0.0

时间:2014-01-05 19:21:51

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

正如标题所示,当尝试在Android中设置我的googleMap对象的位置时,位置管理器会将位置返回为经度:0.0和纬度0.0(显示在Toast t中)。

我的清单中的权限设置正确,我目前在我目前的住所使用wifi访问我的位置。

获取设备位置的代码:

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
            Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

            final LocationListener locationListener = new LocationListener() {
                public void onLocationChanged(Location location) {
                    longitude = location.getLongitude();
                    latitude = location.getLatitude();
                }

                /* just un implemented methods */
                @Override
                public void onProviderDisabled(String provider) {

                }

                @Override
                public void onProviderEnabled(String provider) {

                }

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

                }
                /* end of un implemented methods */
            };

            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);



            map=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.mapView)).getMap();

            CameraUpdate position = CameraUpdateFactory.newLatLng(new LatLng(latitude, longitude));
            CameraUpdate zoom = CameraUpdateFactory.zoomTo(8);

            map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            map.moveCamera(position);
            map.animateCamera(zoom);

            Toast t = Toast.makeText(context, "longitiude : " + longitude + " latitude : " + latitude, Toast.LENGTH_SHORT);
            t.show();

Android清单权限:

 permission android:name="packageName.MAPS_RECEIVE" />
    <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="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

SupportMapFragment确实实际加载成功,因为上述情况恰好加载在错误的位置。我假设我正在做一些可怕的错误,但是我很感激任何帮助。

谢谢, 克里斯。

0 个答案:

没有答案