Setmylocationenabled(true)不显示我的位置android studio

时间:2016-02-25 19:27:19

标签: android google-maps android-studio

所以标题几乎解释了我有什么错误,任何人都可以帮助我吗?这就是我拥有的,我是android的新手,还是我打开mapfragment后立即获取我的位置的另一种方式?谢谢

import android.Manifest;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;


public class RutaTinaja extends AppCompatActivity implements OnMapReadyCallback {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapas);

        MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

    }
    public void onMapReady(GoogleMap map) {


        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }

        map.setMyLocationEnabled(true);

1 个答案:

答案 0 :(得分:0)

启用并且位置可用后,我的位置图层会持续显示用户当前位置和方位,并displays UI controls允许用户与其位置进行互动(例如,启用或禁用相机跟踪其位置和方位)。 要使用my-location-layer功能,您需要请求ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION的权限,除非您设置了custom location source

如果您通过setLocationSource(LocationSource)设置了自定义位置来源,Google Maps Android API将不会检查是否已授予上述权限。但是,您仍需要确保用户已授予自定义位置源所需的所有权限。

首先,确保您的API密钥有效并将其添加到您的清单中:

这是一个简单的code,询问用户的位置,然后在地图知道后将地图置于其中心位置:

请参阅以下链接: https://stackoverflow.com/a/25789758 https://stackoverflow.com/a/19109093

希望它有所帮助。