4

うまく機能するLocationClientを使用しています。今、モックの場所を作成しようとしています (setMockMode(true) + setMockLocation(mockLoc)。しかし、LocationListener の onLocationChanged が呼び出されません。何が問題になるのでしょうか?

私はこれに従いました:http://developer.android.com/training/location/location-testing.html

手順:

  • 接続
  • requestLocationUpdates
  • setMockMode true
  • setMockLocation (プロバイダ = "flp")
4

1 に答える 1

7

では、 と でLocations を更新する必要がsetTime()ありsetElapsedRealtimeNanos()ます。

ロケーションの完全な create メソッドは次のようになります。

@SuppressLint("NewApi")
public Location createLocation(double lat, double lng, float accuracy) {
    // Create a new Location
    Location newLocation = new Location(PROVIDER);
    newLocation.setLatitude(lat);
    newLocation.setLongitude(lng);
    newLocation.setAccuracy(accuracy);
    newLocation.setTime(System.currentTimeMillis());

    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
        newLocation.setElapsedRealtimeNanos(
             SystemClock.elapsedRealtimeNanos());
    }
    return newLocation;
}

これは、Nexus 5 で動作することがテストされています。

于 2014-06-07T08:35:06.557 に答える