Xamarin:模拟位置崩溃

时间:2017-03-25 19:27:08

标签: xamarin

我正在开发一个应用程序,它会读取用户的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

所以,我决定不从我的笔记本电脑调试应用程序,而是从手机启动它 - 现在将此应用程序设置为"允许模拟位置"。

以下是有线的地方:即使我的应用程序出现在这里(是的,我添加了权限) - 当我点击它时,我的手机会显示另一个我已经安装的应用程序,并且会显示在此菜单中作为模拟位置。无论我点击我的应用程序多少钱,我的手机总是会使用其他应用程序。

然而,只要我点击我的应用程序并从我的手机启动它就会发生简单的崩溃。现在,我做错了吗?我真的没有想法......

非常感谢你们!

1 个答案:

答案 0 :(得分:1)

错误:

  

Java.Lang.SecurityException:uid 10303中的GetLocation.GetLocation不允许执行MOCK_LOCATION

显示您尚未要求获得模拟该位置的许可。

您需要添加:

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 

到您的AndroidManifest.xml文件。