所以标题几乎解释了我有什么错误,任何人都可以帮助我吗?这就是我拥有的,我是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);
答案 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
希望它有所帮助。