Android GPS定位问题
我无法用GPS设置当前位置。 它在安卓5.0.1上正常工作(关于查找位置的通知,然后正确设置)(小米红米注3) 但例如在Android 6.0(Sony Xperia Z5 Compact)上,它根本不起作用。没有通知,GPS位置设置从不。在Xperia上,我甚至在地图的右边没有按钮,它在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)上也没有出现任何通知,但我可以在屏幕右上方看到当前位置的按
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的定位
顺便说一句,有很多很好的理由,你应该考虑去玩服务来获得你的位置,我强烈建议你阅读以下内容:
谢谢,但我拥有所有这些权限:)