簡體   English   中英

谷歌地圖api沒有顯示我當前的位置

[英]Google maps api doesn't shows my current location

我關注了一些文檔,但它仍然沒有顯示我當前的位置,這是我的代碼:

package com.example.stewiesh.uniguide;

import android.content.pm.PackageManager;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class Routes extends FragmentActivity implements OnMapReadyCallback
{
    private GoogleMap mMap;

    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_routes);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    public void onMapReady(GoogleMap googleMap)
    {
        mMap = googleMap;
        mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
                ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
        {
            System.out.println("Permission error");
            return;
        }
        mMap.setMyLocationEnabled(true);
        mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener()
        {
            public boolean onMyLocationButtonClick()
            {
                System.out.println("button error");
                return false;
            }
        });
    }

}

我正在使用api的最新版本,清單和gradle中的所有內容都很好,我多次檢查它們....

替換onMyLocationButtonClick的代碼:

public boolean onMyLocationButtonClick()
    {
        mMap.getMyLocation();
    }

我檢查過,你的代碼工作正常。

檢查,也許在模擬器中(例如,如果你使用Genymotion)你沒有打開GPS,這就是為什么它沒有顯示你的位置......

這是工作代碼:

@Override
public void onMapReady(GoogleMap googleMap) {
    Log.d(TAG, "onMapReady()");
    mGoogleMap = googleMap;
    /*
    * Adding map control buttons
    * */
    mUiSettings = mGoogleMap.getUiSettings();
    mUiSettings.setZoomControlsEnabled(true);

    if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)
            == PackageManager.PERMISSION_GRANTED) {
        Log.d(TAG, "PERMISSION_GRANTED");

        /*
        * Allow application to get user location
        * */
        mGoogleMap.setMyLocationEnabled(true);



    } else {
        Log.d(TAG, "PERMISSION_NOT_GRANTED");
        Toast.makeText(getActivity(), "Permissions to get the location are not granted. Please setup the permissions.", Toast.LENGTH_LONG).show();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM