2016-11-21 94 views
2

我正在制作Android Wear手表Face,我需要显示用户当前的位置。Android Wear位置

我被跟在Dev site上的教程,但我不能得到它的工作。代码永远不会去“onLocationChanged”侦听器。

设备是华为手表,它通过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()); 
    } 
}; 
+0

你可以发布你的活动的所有代码吗? – Sid

+2

经过几个小时的检查,重新检查和解决方案搜索之后,我尝试在手表上打开Goog​​le地图,查看位置是否正常工作。 当它开始时,我的应用程序也开始工作。 出厂重置后,我根本没有打开Goog​​le地图。这有点尴尬,但我想它的工作原理。我会尝试将其恢复到出厂设置,并会看到会发生什么。 – filipst

回答

1

来自Dev网站的代码不是问题。

设备是新工厂重置,我没有打开谷歌地图却又如此的关注不能让当前的位置和因为它没有进入“onLocationChanged”

0

您必须致电connect

@Override 
protected void onResume() { 
    super.onResume(); 
    googleApiClient.connect(); 
    ... 
} 
+0

这不是问题。 GoogleApiClient已连接。 – filipst