我有一种情况需要测试智能手机应用程序。目标是根据地理位置禁用我的应用程序。例如,假设我“直播”通过我的应用流式传输某些视频,并且如果用户进入某个受限制的位置并且当用户移动到可接受的地理区域时将其打开则禁用流式传输。
现在测试部分是,所有手机都可以说5个手机就在我面前,我想测试运行在他们身上的应用程序,当应用程序进入限制区域时应用程序将被关闭。如何实现这一目标?
编辑: - 实际场景 - 在Android应用程序的体育场附近区域不应显示的比赛直播。因此,如果用户在应用上点击“播放”按钮并且电话在该特定持续时间内物理上处于视频限制区域中,则不应将视频流式传输到该移动电话。
任何想法......意见......?
由于
答案 0 :(得分:3)
在Android上,您有多个选项可以为您的应用程序提供模拟位置: 通过DDMS,telnet或通过LocationManager:
从AndroidSDK / tools /文件夹启动DDMS。选择要欺骗其位置的设备,然后转到Emulator Control
。在选项卡的底部,您应该找到手动设置位置的选项,以及要欺骗的位置。
通过adb devices
列出所有设备。从这里你应该得到这样的输出:
List of devices attached
emulator-5554 device
然后telnet到指示的端口:
telnet localhost 5554
这应该打开android控制台。在那里,您可以使用geo fix
命令设置位置
geo fix $lon $lat
您可以使用setTestProviderLocation
LocationProvider
方法提供测试位置
LocationManager lm = (LocationManager)this.getContext().getSystemService(Context.LOCATION_SERVICE);
String mocLocationProvider = "Test";
locationManager.addTestProvider(mocLocationProvider, false, false,
false, false, true, true, true, 0, 5);
locationManager.setTestProviderEnabled(mocLocationProvider, true);
Location mockLocation = new Location(mocLocationProvider);
mockLocation.setLatitude(location.getLatitude());
mockLocation.setLongitude(location.getLongitude());
mockLocation.setAltitude(location.getAltitude());
mockLocation.setTime(System.currentTimeMillis());
locationManager.setTestProviderLocation( mocLocationProvider, mockLocation);
这是我从here
获得的方法此外,不要忘记设置权限
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">
答案 1 :(得分:0)
我不知道我是否理解得很好,但如果您想通过更改位置来测试应用程序的禁用部分是否有效,那么iPhone模拟器可能会有所帮助。
模拟器的地理位置可以设置为许多预定的重要位置,如香港和伦敦。制作其中一个限制并测试它。
要模拟一个位置,您必须在xcode中设置它。单击接近调试控制按钮的箭头按钮。
答案 2 :(得分:0)
如果您使用的是root设备,尤其是在开发人员菜单中允许模拟位置的方法。另请查看此Fake GPS App (Android)
等应用答案 3 :(得分:0)