我正在使用用户的位置并使用模拟位置进行测试,但我无法弄清楚在上传到制作时(Google Play)我的代码应该如何显示。我的意思是,现在我正在开发和QA-ing,我的代码包含模拟位置生成,清单包含ACCESS_MOCK_LOCATION
权限请求。
在生产中请求这些权限听起来很奇怪。我是否希望在上传我的应用之前删除处理模拟位置的权限和代码?此外,在QA-ing时,我正在使用启用了模拟位置设置的开发人员模式设备。
我已经阅读了Google的Testing Using Mock Locations指南,但是尽管有以下声明,我仍然不明白它是如何完成的:“既然您可以从生产应用程序外部发送模拟数据,那么您没有在发布之前禁用或删除测试代码。“。
也许我的误解是因为我编码它的方式,所以这里是:
public class MainActivity extends FragmentActivity implements GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener {
private LocationClient mLocationClient;
protected void onCreate(Bundle savedInstanceState) {
...
mLocationClient = new LocationClient(this, this, this);
}
protected void onStart() {
super.onStart();
mLocationClient.connect();
}
protected void onStop() {
mLocationClient.disconnect();
super.onStop();
}
private Location createLocation(double lat, double lng, float accuracy) {
// Create a new Location
Location newLocation = new Location("flp");
newLocation.setLatitude(lat);
newLocation.setLongitude(lng);
newLocation.setAccuracy(accuracy);
return newLocation;
}
public void onConnected(Bundle arg0) {
Location currentLocation = mLocationClient.getLastLocation();
//null is my indication to use mocks
if(currentLocation==null){
if(isMockSettingsON(getApplicationContext())){
mLocationClient.setMockMode(true);
currentLocation = createLocation(LAT, LON, ACCURACY);
mLocationClient.setMockLocation(currentLocation);
}
}
}
}