Ответ 1
Убедитесь, что у вас есть следующий элемент в зависимости от gradle:
dependencies {
compile 'com.google.android.gms:play-services-location:7.+'
}
Я пытаюсь найти наиболее точное местоположение.
до сих пор я успешно использовал LocationClient, как в документах Google: http://developer.android.com/training/location/retrieve-current.html
Но теперь я обнаружил, что этот класс старый: http://developer.android.com/reference/com/google/android/gms/location/package-summary.html
Msgstr "Этот класс устарел. Используйте LocationServices".
Однако в примерах LocationServices даже на этом сайте: Android LocationClient класс устарел, но используется в документации
Кажется, мы должны использовать импорт: com.google.android.gms.location.LocationServices Однако я не могу импортировать этот класс..
Есть идеи?
Редактировать:
Я нашел на этой странице: h2ttps://github.com/M66B/XPrivacy/issues/1774
с, казалось бы, похожей проблемой, предположение, что: "Кажется, является частью сервисов Play 5.0".
Интересно, так ли это - кто-нибудь пробовал это?
Убедитесь, что у вас есть следующий элемент в зависимости от gradle:
dependencies {
compile 'com.google.android.gms:play-services-location:7.+'
}
Пожалуйста, не используйте compile 'com.google.android.gms:play-services:9.0.1'
В версиях сервисов Google Play до 6.5 вам пришлось собрать весь пакет API в ваше приложение. В некоторых случаях это затрудняло сохранение количества методов в вашем приложении (включая интерфейсные API, библиотечные методы и собственный код) в соответствии с лимитом 65 536.
В версии 6.5 вы можете выборочно скомпилировать API-интерфейс сервисов Google Play в свое приложение. Например, в вашем случае вам просто нужно это.
compile 'com.google.android.gms:play-services-maps:9.0.1'
compile 'com.google.android.gms:play-services-location:9.0.1'
Чтобы использовать сплавленный api для получения последнего местоположения, вы должны иметь compile 'com.google.android.gms:play-services-location:9.0.1'
.
Надеюсь, что это поможет
Ниже может помочь,
Он должен импортировать соответствующий пакет в проект.
Я столкнулся с той же проблемой и решил ее, обновив Google Play Services с 17 до последних (в настоящее время 22) в Android SDK Manager, как упоминалось в комментариях.
Для этого в Eclipse:
LocationClient устарел. Вы должны использовать GoogleApiclient
, например:
1: объявить переменную GoogleApiClient
private GoogleApiClient mGoogleApiClient;
2: Выполнять
mGoogleApiClient = new GoogleApiClient.Builder(mThisActivity)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
3: Реализация обратного вызова
public class YourClass extends BaseFragment implements
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener, LocationListener {
@Override
public void onConnectionFailed(ConnectionResult result) {
// your code goes here
}
@Override
public void onConnected(Bundle connectionHint) {
//your code goes here
}
@Override
public void onConnectionSuspended(int cause) {
//your code goes here
}
}
4: Начните получать обновления местоположения:
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
5: Удалите обновления местоположения:
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
6: Получить последнее известное местоположение:
private Location mCurrentLocation;
mCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
Выполните следующие действия, если вы используете eclipse: -
Это аналогичный вопрос для выдачи и ответа на здесь:
В Android Studio:
Щелкните правой кнопкой мыши на папке "приложения" ваших проектов и выберите "-" настройки модуля
Нажмите вкладку "зависимости"
Нажмите на знак +, чтобы добавить новую зависимость, и выберите "Зависимость библиотеки" Найдите нужную библиотеку и добавьте ее
Начиная с 2019 года, лучший ответ устарел и не будет работать.
Вместо этого добавьте:
implementation 'com.google.android.gms:play-services-location:17.0.0'
к dependencies
в build.gradle
.