Java 如何在GoogleMapFragment上获取重新网格化的位置
我想每5秒刷新一下我的位置。我还想使用我当前的代码,所以只需添加一些东西。我试过一些方法,但都不管用。有什么想法吗?我不知道该如何解决这个问题。 谢谢你的帮助 MapsActivityJava 如何在GoogleMapFragment上获取重新网格化的位置,java,android,android-studio,maps,Java,Android,Android Studio,Maps,我想每5秒刷新一下我的位置。我还想使用我当前的代码,所以只需添加一些东西。我试过一些方法,但都不管用。有什么想法吗?我不知道该如何解决这个问题。 谢谢你的帮助 MapsActivity public class MapsActivity<defaultConfig> extends FragmentActivity implements OnMapReadyCallback { SupportMapFragment mMap; FusedLocationProviderClient
public class MapsActivity<defaultConfig> extends FragmentActivity implements OnMapReadyCallback {
SupportMapFragment mMap;
FusedLocationProviderClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
mMap = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
client = LocationServices.getFusedLocationProviderClient(this);
if (ActivityCompat.checkSelfPermission(MapsActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
getCurrentLocation();
} else {
ActivityCompat.requestPermissions(MapsActivity.this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 44);
}
}
private void getCurrentLocation() {
Task<Location> task = client.getLastLocation();
task.addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(final Location location) {
if (location != null){
mMap.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());
MarkerOptions options = new MarkerOptions().position(latLng)
.title("Ich bin hier");
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,10));
googleMap.addMarker(options);
}
});
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 44){
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
getCurrentLocation();
}
}
}
@Override
public void onMapReady(GoogleMap googleMap) {
}
公共类MapsActivity扩展了FragmentActivity在MapreadyCallback上的实现{
支持MAPMMAP;
FusedLocationProviderClient客户端;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.KITKAT){
windoww=getWindow();
w、 setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_映射);
mMap=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
client=LocationServices.getFusedLocationProviderClient(此);
如果(ActivityCompat.checkSelfPermission(MapsActivity.this),
Manifest.permission.ACCESS\u FINE\u LOCATION)==PackageManager.permission\u provided){
getCurrentLocation();
}否则{
ActivityCompat.requestPermissions(MapsActivity.this,
新字符串[]{Manifest.permission.ACCESS\u FINE\u LOCATION},44);
}
}
私有void getCurrentLocation(){
Task=client.getLastLocation();
task.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时的公共无效(最终位置){
如果(位置!=null){
getmapsync(新的OnMapReadyCallback(){
@凌驾
4月1日公开作废(谷歌地图谷歌地图){
LatLng LatLng=新LatLng(location.getLatitude(),location.getLongitude());
MarkerOptions options=新的MarkerOptions().位置(车床)
.头衔(“我的父亲”);
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,10));
googleMap.addMarker(选项);
}
});
}
}
});
}
@凌驾
public void onRequestPermissionsResult(int-requestCode,@NonNull-String[]permissions,@NonNull-int[]grantResults){
if(requestCode==44){
if(grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION\u已授予){
getCurrentLocation();
}
}
}
@凌驾
4月1日公开作废(谷歌地图谷歌地图){
}
}