Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在GoogleMapFragment上获取重新网格化的位置_Java_Android_Android Studio_Maps - Fatal编程技术网

Java 如何在GoogleMapFragment上获取重新网格化的位置

Java 如何在GoogleMapFragment上获取重新网格化的位置,java,android,android-studio,maps,Java,Android,Android Studio,Maps,我想每5秒刷新一下我的位置。我还想使用我当前的代码,所以只需添加一些东西。我试过一些方法,但都不管用。有什么想法吗?我不知道该如何解决这个问题。 谢谢你的帮助 MapsActivity public class MapsActivity<defaultConfig> extends FragmentActivity implements OnMapReadyCallback { SupportMapFragment mMap; FusedLocationProviderClient

我想每5秒刷新一下我的位置。我还想使用我当前的代码,所以只需添加一些东西。我试过一些方法,但都不管用。有什么想法吗?我不知道该如何解决这个问题。 谢谢你的帮助

MapsActivity

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日公开作废(谷歌地图谷歌地图){
}
}