В моем приложении Android я нацеливаюсь на устройство в диапазоне от
Минимум Android Версия - 7.1 (API 25)
Цель Android Версия - 10.0 (API 29)
Я использую приведенные ниже логи c, чтобы получить информацию о местоположении
Разрешения с использованием
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Код Logi c
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) {
return;
}
try {
gps_loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
network_loc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} catch (Exception e) {
e.printStackTrace();
}
if (gps_loc != null) {
final_loc = gps_loc;
latitude = final_loc.getLatitude();
longitude = final_loc.getLongitude();
}
else if (network_loc != null) {
final_loc = network_loc;
latitude = final_loc.getLatitude();
longitude = final_loc.getLongitude();
}
else {
latitude = 0.0;
longitude = 0.0;
}
}
Но большую часть времени я не могу получить точное местоположение с помощью вызова API. Но если включить опцию ниже на уровне устройства (в телефоне), я получу наиболее точное местоположение
Есть ли способ настроить вышеуказанные настройки на уровне приложения через код. Клиент, с которым я работаю, не удовлетворен изменением конфигурации вручную.
Мне интересно, как я могу добиться того же с помощью кода. Кто-нибудь, пожалуйста, помогите.