授予权限后刷新谷歌地图(Android Java)
我正在寻找一种添加“检测我的位置”按钮的方法。我设法添加了它,请求位置许可,但我有另一个问题,那就是当我授予许可时,我必须出去重新进入应用程序,以便我看起来一切正常,我留下了代码:授予权限后刷新谷歌地图(Android Java),java,android,Java,Android,我正在寻找一种添加“检测我的位置”按钮的方法。我设法添加了它,请求位置许可,但我有另一个问题,那就是当我授予许可时,我必须出去重新进入应用程序,以便我看起来一切正常,我留下了代码: package com.isaac.appet; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.annotation.NonNul
package com.isaac.appet;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
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.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class FinderFragment extends Fragment implements OnMapReadyCallback {
private GoogleMap mMap;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.finder_fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(),
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
1);
return;
}
mMap.setBuildingsEnabled(true);
mMap.setIndoorEnabled(true);
mMap.setTrafficEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.setMyLocationEnabled(true);
mMap.setMyLocationEnabled(true);
mMap.getUiSettings().setMyLocationButtonEnabled(true);
mMap.getUiSettings().setZoomControlsEnabled(true);
LatLng sevilla = new LatLng(37.3886303, -5.9953403);
mMap.addMarker(new MarkerOptions().position(sevilla).draggable(true).title("Sevilla").snippet("Este es el marcador de Sevilla").icon(BitmapDescriptorFactory.fromResource(R.drawable.mapicon)));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sevilla, 15));
}
}
如果您需要其他代码文件来查看它,请告诉我,我将使用代码对其进行编辑,以使您尽可能轻松地解决我的问题,这最终会很愚蠢,但我找不到它…您可以通过覆盖onRequestPermissionsResult活动方法来处理授予权限的结果。您可以在此处阅读:在获得许可后,您可以像这样重新启动活动
Intent intent = getIntent();
finish();
startActivity(intent);