Я пытаюсь реализовать GPStracker в своем проекте, который я хочу использовать, чтобы получить пользователей lat, long и post code. Я следую этому руководству; http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/, однако, похоже, я не могу заставить код работать и после нескольких часов пытаться и исследовать, я не уверен, что мне следует делать. Я довольно новичок в Android, поэтому я, вероятно, делаю глупую ошибку.Как получить пользователей Расположение через GPS с целевым API 23 и выше
Когда я следуйте инструкциям в руководстве, как показано на веб-сайте размещены я получаю сообщение об ошибке на моем коде, говоря:
Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`
на линиях:
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
// if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
и
public void stopUsingGPS(){
if(locationManager != null){
locationManager.removeUpdates(GPSTracker.this);
}
}
Я использую API 25, работая с фрагментами и находясь в Интернете, похоже, это проблема с API 23 и выше. У многих других есть похожие вопросы, но когда я пытаюсь дать ответы на них, я все равно не могу заставить его работать; например,
Я попытался реализации:
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
Что я предполагаю, что дает разрешение на Android есть после, но он по-прежнему не работает. Если есть новый способ получения местоположения пользователей, который, по вашему мнению, лучше, пожалуйста, вы можете направить меня на это.
Я также включил следующие разрешения в моем проекте:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Этот учебник ** четыре с половиной года **. В Android-годы это практически навсегда. Придерживайтесь учебных материалов, которые являются более свежими (в идеале, менее двух лет). FWIW, [здесь пример приложения, демонстрирующий получение местоположения, а также использование разрешений времени выполнения] (https://github.com/commonsguy/cw-omnibus/tree/master/Location/Classic). – CommonsWare
:) правда сказать. Будем держать это в уме. Спасибо за ссылку – SumOne