7

最後の位置情報サービス機能であるジオフェンスを使用して、Android で開発を開始しました!! モック ロケーション プロバイダーに関する既知の問題はありますか? ここの例 ( https://developer.android.com/training/location/geofencing.html ) に従って、現在の場所がジオフェンス内にある場合でも、インテント サービスが起動しませんでした。FakeGPS Android アプリをモック ロケーション プロバイダーとして使用しています。ルートをシミュレートすると、Google マップ アプリでロケーションの変更が表示されるため、モック ロケーション プロバイダーはうまく機能しています。何か案は ?

ありがとう。パオロ。

4

6 に答える 6

4

私はこれを機能させるために永遠に努力しました。なんてつらいグーグル!ジオフェンスはモックを使用して簡単にテストできると書かれているためです。

手品は、setMockLocation に渡される Location でプロバイダー名「network」を使用することです。

    Location location = new Location("network");
    location.setLatitude(latitude);
    location.setLongitude(longitude);
    location.setTime(new Date().getTime());
    location.setAccuracy(3.0f);
    location.setElapsedRealtimeNanos(System.nanoTime());

    LocationServices.FusedLocationApi.setMockLocation(_googleApiClient, location);
于 2014-09-29T21:21:02.873 に答える
2

実際、上記の例で使用されている Intent サービスは、アプリがフォアグラウンドにある場合はうまく機能しますが、アプリがバックグラウンドにある場合、この IntentService は呼び出されません。そのため、Intent サービスの代わりに Broadcast-Receiver を使用する必要があります。

このブログが解決策を得るのに役立つことがわかりました。

http://davehiren.blogspot.in/2015/01/android-geofence-stop-getting.html

于 2017-04-03T09:37:33.943 に答える
1

ジオフェンスは FusedLocationProviderApi を使用するため、それらをモックするにはFusedLocationProviderApi.setMockLocationを使用する必要があります

于 2015-02-04T13:56:36.470 に答える
0

モックの場所を設定する前に、LocationServices.FusedLocationApi.setMockMode(googleApiClient, true) を使用する必要があります。

于 2015-02-28T10:36:33.263 に答える
0

スマートフォンでモック ロケーションを有効にしてください。[設定] -> [開発者向けオプション] -> [モックの場所を許可する] を選択します。

于 2015-01-23T22:42:46.863 に答える