我正在开发一个应用程序,它会读取用户的GPS坐标并稍微更改它们,然后将新位置设置为模拟位置。现在一切正常但是这部分代码崩溃了我的构建:
public bool SetMockLocation()
{
bool success = false;
var location = new Location("Test");
_locationManager.AddTestProvider("Test", false, false, false, false, false, false, false, Power.Low, Android.Hardware.SensorStatus.AccuracyHigh);
location.Latitude = Add700ToCoordinates();
location.Longitude = GlobalLongitude;
_locationManager.SetTestProviderLocation("Test", location);
return success;
}
遗憾的是我根本找不到这方面的细节,我知道我的应用程序Crahses和Visual STudio说:
Java.Lang.SecurityException:uid 10303中的GetLocation.GetLocation不允许执行MOCK_LOCATION
所以,我决定不从我的笔记本电脑调试应用程序,而是从手机启动它 - 现在将此应用程序设置为"允许模拟位置"。
以下是有线的地方:即使我的应用程序出现在这里(是的,我添加了权限) - 当我点击它时,我的手机会显示另一个我已经安装的应用程序,并且会显示在此菜单中作为模拟位置。无论我点击我的应用程序多少钱,我的手机总是会使用其他应用程序。
然而,只要我点击我的应用程序并从我的手机启动它就会发生简单的崩溃。现在,我做错了吗?我真的没有想法......
非常感谢你们!
答案 0 :(得分:1)
错误:
Java.Lang.SecurityException:uid 10303中的GetLocation.GetLocation不允许执行MOCK_LOCATION
显示您尚未要求获得模拟该位置的许可。
您需要添加:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
到您的AndroidManifest.xml文件。