0

mcharmas でAndroid-ReactiveLocationを使用しようとしています。

つまり、callメソッドに到達することはありません。デバイスの位置情報がオンになっています。GPS アプリを使用すると、GPS が機能していることがわかります。Settings > Location > Recent location requestで、私のアプリがリストの最初に表示されます。エラー メッセージはありません。
私は何かが欠けているに違いない。それは何ですか?

次のようにアプリ build.gradle に Reactive Location を含めます。

compile 'pl.charmas.android:android-reactive-location:0.10@aar'

Google Play で API キーを作成し、マニフェスト ファイルに配置しました。

<meta-data
    android:name="com.google.android.geo.API_KEY"
     android:value=aaaaaaaaaaaa-bbbbbbbbbbbbbb_ccccccccccc"/>

私のプロジェクトの gradle.properties ファイルに、次を追加しました。

REACTIVE_LOCATION_GMS_API_KEY="aaaaaaaaaaaa-bbbbbbbbbbbbbb_ccccccccccc"

MainActivity.OnCreate():

if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) !=
        PackageManager.PERMISSION_GRANTED) {

    ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION},
            LocationService.MY_PERMISSION_ACCESS_COURSE_LOCATION);
}

locationProvider = new ReactiveLocationProvider(getApplicationContext());
lastKnownLocationObservable = locationProvider.getLastKnownLocation();

final LocationRequest locationRequest = LocationRequest.create()
        .setPriority(LocationRequest.PRIORITY_LOW_POWER)
        .setInterval(1000); // milliseconds

Subscription locationUpdateSubscription = locationProvider
        .getUpdatedLocation(locationRequest)
        .subscribe(new Action1<Location>(){
            @Override
            public void call(Location location){
                Log.i(TAG, "call: (" + location.getLatitude() + ", " + location.getLongitude() + ")");
                PreferencesUtilities.setCurrentLocation(mActivity.getApplicationContext(), location);
            }
        }
);
4

1 に答える 1

1
Observable<Location> locationObservable = reactiveLocationProvider.getUpdatedLocation(
        LocationRequest.create()
        .setPriority(LocationRequest.PRIORITY_LOW_POWER)
        .setInterval(1000);

locationObservable.map(location -> {
     //do whatever you want with your location
}).subscribe();

これは機能します。もちろん、必要なものに合わせて調整します

于 2016-11-02T04:54:24.050 に答える