LocationClient - 模拟位置

时间:2014-05-28 10:03:20

标签: android google-play-services locationlistener location-client

我使用的LocationClient效果很好。现在我正在尝试创建模拟位置(setMockMode(true)+ setMockLocation(mockLoc)。但是我的LocationListener的onLocationChanged没有被调用。可能是什么问题?

我遵循了这个:http://developer.android.com/training/location/location-testing.html

步骤:

  • 连接
  • requestLocationUpdates
  • setMockMode true
  • setMockLocation(provider =“flp”)

1 个答案:

答案 0 :(得分:7)

好的,您必须使用setTime()setElapsedRealtimeNanos()更新您的地理位置。

位置的完整创建方法如下所示:

@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配合使用。