Не удаётся вывести список подключённых устройств в Xamarin.Forms
Цель следующая: необходимо вывести список подключённых устройств в Xamarin.Forms. Для этого использую DependencyService следующим образом: в общем проекте создал простенький interface IUsbConnection:
public interface IUsbConnection
{
List<string> GetDeviceList();
}
В проекте App.Android создал класс AndroidUsbConnection, наследующий этот interface, со следующей логикой:
public class AndroidUsbConnection : IUsbConnection
{
public List<string> GetDeviceList()
{
List<string> result = null;
UsbManager manager = Android.App.Application.Context.GetSystemService(Context.UsbService) as UsbManager;
foreach (KeyValuePair<string, UsbDevice> device in manager.DeviceList)
{
result.Add(device.Key);
}
return result;
}
}
И в общем проекте, в MainPage (содержит один Label и один Button), сделал следующую обработку нажатия на Button:
private void bButton_Clicked(object sender, EventArgs e)
{
IUsbConnection connection = DependencyService.Get<IUsbConnection>();
var devices = connection.GetDeviceList();
string str = "";
if (devices != null)
{
foreach (string s in devices)
{
str = s + "\n";
}
}
else
{
str = "List is empty";
}
lValue.Text = str;
}
Проблема в том, что когда происходит выполнения цикла foreach в обработчике событий, приложение крашится. Почему так происходит?