У меня есть функция, которая возвращает мне широту и долготу, которые используются для добавления маркера, и она отлично работает с некоторыми устройствами: Asus, Samsung, Motorola.
Но я заметил, чтона некоторых телефонах маркеры не отображаются, и приложение не дает сбоя или не отправляет сообщение об ошибке, это происходит с Xiaomi, Honor, OnePlus.
Я читал в Интернете, что иногда запрос разрешения позиции разрешает проблему, но япредпочитаю не использовать это.
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.setMinZoomPreference(googleMap.getMinZoomLevel());
UiSettings settings = googleMap.getUiSettings();
settings.setTiltGesturesEnabled(false);
tracking(googleMap);
timer.schedule(new TimerTask() {
@Override
public void run() {
tracking(googleMap);
}
}, 10*1000,10*1000);
}
private void tracking(@NonNull GoogleMap gMap){
AndroidNetworking.get(Constant.POSITION_URL)
.setPriority(Priority.MEDIUM)
.build()
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject IssLocationResponse) {
try {
String success = IssLocationResponse.getString("message");
JSONObject ISSPosition = IssLocationResponse.getJSONObject("iss_position");
double latitude = Double.parseDouble(ISSPosition.getString("latitude"));
double longitude = Double.parseDouble(ISSPosition.getString("longitude"));
long timestamp = IssLocationResponse.getLong("timestamp");
gMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude,longitude))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
);
//gMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(latitude,longitude)));
//gMap.animateCamera(CameraUpdateFactory.zoomTo(10));
} catch (JSONException e) {
e.printStackTrace();
//TODO Handle error
}
}
@Override
public void onError(ANError error) {
//Handle error
Log.d("ERROR","err: "+error.getErrorDetail());
}
});
}
Кто-нибудь сталкивался с такой проблемой?