Я делаю Android Wear Watch Face, и мне нужно показать текущее местоположение пользователя.Android Wear Location
Я следил за учебником по Dev site, но я не могу заставить его работать. Код никогда не переходит в «onLocationChanged» прослушиватель.
Устройство - часы Huawei, и оно подключено к мобильному телефону с WiFi и расположением.
Разрешения включены (у меня есть запрос разрешения на запуск). Вот код:
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
build.gradle (Module.wear)
compile 'com.google.android.gms:play-services-location:8.4.0'
AnalogFaceService.java
googleApiClient = new GoogleApiClient.Builder(AnalogFaceService.this)
.addApi(LocationServices.API)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this).build();
@Override
public void onConnected(@Nullable Bundle bundle)
{
LocationRequest locationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY)
.setInterval(TimeUnit.SECONDS.toMillis(2))
.setFastestInterval(TimeUnit.SECONDS.toMillis(2))
.setSmallestDisplacement(2);
if
(
(
ActivityCompat.checkSelfPermission(AnalogFaceService.this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
) && (
ActivityCompat.checkSelfPermission(AnalogFaceService.this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
)
) {
return;
}
LocationServices.FusedLocationApi
.requestLocationUpdates(googleApiClient, locationRequest, onLocationChangedListener)
.setResultCallback(locationCallback);
}
private final LocationListener onLocationChangedListener = new LocationListener()
{
@Override
public void onLocationChanged(Location location)
{
Log.v("LOCATION_TEST", location.getLatitude() + " :::: " + location.getLongitude());
getSunriseAndSunset(location);
addLocationEntry(location.getLatitude(), location.getLongitude());
}
};
Можете ли вы опубликовать весь код из своей деятельности? – Sid
После нескольких часов проверки, перепроверки и поиска решений я попытался открыть Карты Google на часах, чтобы увидеть, работает ли местоположение вообще. И когда оно началось, мое приложение тоже начало работать. После перезагрузки, я вообще не открывал Карты Google. Это немного неудобно, но я думаю, это работает. Я попытаюсь снова вернуть его к заводским настройкам и посмотреть, что произойдет. – filipst