【发布时间】:2019-02-25 15:47:27
【问题描述】:
我使用 Espresso Recorder 录制了浓缩咖啡测试。我想在我的应用中测试一些位置变化。
目前我正在使用以下代码模拟位置:
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy( Criteria.ACCURACY_FINE );
String mocLocationProvider = LocationManager.GPS_PROVIDER;//lm.getBestProvider( criteria, true );
lm.addTestProvider(mocLocationProvider, false, false,
false, false, true, true, true, 0, 5);
lm.setTestProviderEnabled(mocLocationProvider, true);
Location loc = new Location(mocLocationProvider);
Location mockLocation = new Location(mocLocationProvider); // a string
mockLocation.setLatitude(-26.902038); // double
mockLocation.setLongitude(-48.671337);
mockLocation.setAltitude(loc.getAltitude());
mockLocation.setTime(System.currentTimeMillis());
mockLocation.setAccuracy(1);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
mockLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
}
lm.setTestProviderLocation( mocLocationProvider, mockLocation);
我还在调试清单文件中添加了权限:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
但不幸的是,我仍然遇到安全异常:
java.lang.SecurityException: mypackage.test from uid not allowed to perform MOCK_LOCATION
我想在 Google Firebase 测试实验室中使用模拟位置运行记录的测试用例。我该如何解决这个问题?
【问题讨论】:
标签: android android-espresso android-testing android-location firebase-test-lab