0
我有兩段代碼,一個從位置&獲得地址,從地址獲取位置。Xamarin表格地理編碼Android
GetAddressesForPosition
var geoCoder = new Geocoder();
Task.Run(async() =>
{
var possibleAddresses = await geoCoder.GetAddressesForPositionAsync(position);
Device.BeginInvokeOnMainThread(() =>
{
var firstAdress = possibleAddresses.FirstOrDefault();
GeolocationAdressEntry.Text = firstAdress;
//GeolocationAdressEntry.Text = [email protected]"{firstAdresse.} {firstAdresse.PostalCode} {firstAdresse.Locality}";
});
});
對於這個代碼,我不會有任何異常,從不代碼後
var possibleAddresses = await geoCoder.GetAddressesForPositionAsync(position);
GetPositionsForAddress
var elem = (Entry)sender;
var geoCoder = new Geocoder();
IEnumerable<Xamarin.Forms.Maps.Position> loc;
try
{
loc = await geoCoder.GetPositionsForAddressAsync(elem.Text);
var firstLoc = loc.FirstOrDefault();
var adress = elem.Text;
CreateNewPin(firstLoc, adress);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
對於這一個它引發了一個錯誤:「grpc失敗」。如果需要,我可以發佈完整的錯誤。
這很無聊,因爲它在IOS中完美運行。
我嘗試了不同版本的仿真器(Genymotion & adb),並且在真正的設備中。同樣的問題。
我只在模擬器上得到這個,這是Android模擬器的一個已知限制。至於設備,我的代碼適用於Android 4.4 - > Android 7.1的所有測試設備。您確定您已經爲您的Android項目正確設置了Google API密鑰嗎? – Ewald
嗨,我忘了上傳這個帖子。你是完全正確的,這是一個模擬器問題的代碼工作perfeclty在設備(好像4.4需要重新啓動工作) – OrcusZ