Android GPS定位问题

Android GPS定位问题,android,android-studio,firebase,gps,Android,Android Studio,Firebase,Gps,我无法用GPS设置当前位置。 它在安卓5.0.1上正常工作(关于查找位置的通知,然后正确设置)(小米红米注3) 但例如在Android 6.0(Sony Xperia Z5 Compact)上,它根本不起作用。没有通知,GPS位置设置从不。在Xperia上,我甚至在地图的右边没有按钮,它在code(mMap.setMyLocationEnabled(true);)中以行显示 在安卓4.4.2(Gigabyte GsMart R2plus)上也没有出现任何通知,但我可以在屏幕右上方看到当前位置的按

我无法用GPS设置当前位置。 它在安卓5.0.1上正常工作(关于查找位置的通知,然后正确设置)(小米红米注3) 但例如在Android 6.0(Sony Xperia Z5 Compact)上,它根本不起作用。没有通知,GPS位置设置从不。在Xperia上,我甚至在地图的右边没有按钮,它在
code(mMap.setMyLocationEnabled(true);)中以行显示

在安卓4.4.2(Gigabyte GsMart R2plus)上也没有出现任何通知,但我可以在屏幕右上方看到当前位置的按钮。但仍然不能正常工作

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    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) {
        // 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;
    }

    mMap.setMyLocationEnabled(true);
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String provider = locationManager.getBestProvider(criteria, false);

    Location location = locationManager.getLastKnownLocation(provider);
    if (location != null) {
        latitude = location.getLatitude();
        longitude = location.getLongitude();
    } else {

    }

    final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    emailicek = user.getEmail();
    emailicek = emailicek.replace(".", "");
    mDatabase = FirebaseDatabase.getInstance().getReference();

    if (latitude != 0) {
        if (longitude != 0) {
            mDatabase.child("userdata/" + email + "/latitude").setValue(latitude);
            mDatabase.child("userdata/" + email + "/longitude").setValue(longitude);
        }
    }
    LatLng latLng = new LatLng(latitude, longitude);
    mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    //mMap.animateCamera(CameraUpdateFactory.zoomTo(14));

    if (latitude != 0) {
        mMap.animateCamera(CameraUpdateFactory.zoomTo(14));
    } else {
        mMap.animateCamera(CameraUpdateFactory.zoomTo(1));
    }
}

您是否确保在清单中请求了正确的权限? 要获取您需要的最后一个已知位置

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

对于基于网络的位置,或:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

用于基于GPS的定位

顺便说一句,有很多很好的理由,你应该考虑去玩服务来获得你的位置,我强烈建议你阅读以下内容:


谢谢,但我拥有所有这些权限:)