2017-03-25 109 views
-1

我正在研究一個應用程序,該應用程序讀取用戶的GPS座標並稍微更改它們,然後將新位置設置爲模擬位置。現在,這一切工作,但是這部分代碼崩潰我的構建:Xamarin:模擬位置崩潰

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

錯誤:

Java.Lang.SecurityException: GetLocation.GetLocation from uid 10303 not allowed to perform MOCK_LOCATION

表明你沒有請求允許嘲笑的位置。

您需要添加:

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

AndroidManifest.xml檔案。

+0

謝謝。當然我已經有這個許可加入到我的清單中。但是,我得到這個錯誤。然而,我只會得到這個錯誤,當我直接從xamarin調試應用程序。如果我從我的手機開始它,只有當我點擊按鈕編輯我的手機的GPS座標時,該應用纔會崩潰....任何其他想法? – user7285912