2016-11-21 30 views
2

Android Wearのウォッチフェイスを作成しています。ユーザーの現在地を表示する必要があります。Android Wearの場所

私はDev siteのチュートリアルに続きましたが、動作させることができません。コードは"onLocationChanged"リスナーには決して行きません。

デバイスはHuaweiの腕時計で、Wi-Fiと位置情報付きモバイルに接続されています。

権限が有効です(実行時のアクセス許可が必要です)。ここでコードである:

の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

数時間のチェック、再チェック、ソリューション検索の後、Googleマップを開いて場所がまったく機能しているかどうかを確認しようとしました。 それが始まると、私のアプリも動き始めました。 工場出荷時の設定では、Googleマップをまったく開いていませんでした。それは少し厄介ですが、私はそれが動作すると思います。私は工場出荷時の設定に戻し、何が起こるかを見てみよう。 – filipst

答えて

1

Devサイトのコードは問題ではありませんでした。

デバイスは、新鮮な工場がリセットされたとウォッチは現在の位置を得ることができなかったので、私はまだGoogleマップを開けませんでしたし、それがに行かなかったということのためを「onLocationChanged」。

0

connectに電話する必要があります。

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

それは問題ではなかった。 GoogleApiClientが接続されています。 – filipst