空时如何处理 Mediadevices FriendlyName
How to handle Mediadevices FriendlyName when null
我正在使用 MediaDevice 库,当设备名称与 FriendlyName 匹配时一切正常,
我的问题是当我没有将我的设备插入 PC 或者我在 FriendlyName
中更改了一个简单的字母
var devicess = MediaDevice.GetDevices();
using (var device = devicess.First(d => d.FriendlyName == "MyCellPhone"))
{
device.Connect();
// get list of available storages (SD-Card, Internal Flash, ...)
var objects = device.FunctionalObjects(FunctionalCategory.Storage);
MediaStorageInfo infoss = GetStorageInfo(objects.First());
ulong size = infoss.FreeSpaceInBytes;
device.Disconnect();
}
例如,如果我的 smartphone 被命名为“samsung”,我将“samsam”放在这里
using (var device = devicess.First(d => d.FriendlyName == "samsam")) (instead of samsung)
应用程序崩溃,如果将其留空或我 运行 没有附加 phone 的代码,也会发生同样的事情。
我尝试了一些 try {} catch{} 但没有结果。
任何人都可以帮助我吗?
谢谢。
使用FirstOrDefault
代替First
:
var device = devicess.FirstOrDefault(d => d.FriendlyName == "MyCellPhone")
如果找不到匹配,这将 return null,而不是抛出异常。
我正在使用 MediaDevice 库,当设备名称与 FriendlyName 匹配时一切正常, 我的问题是当我没有将我的设备插入 PC 或者我在 FriendlyName
中更改了一个简单的字母var devicess = MediaDevice.GetDevices();
using (var device = devicess.First(d => d.FriendlyName == "MyCellPhone"))
{
device.Connect();
// get list of available storages (SD-Card, Internal Flash, ...)
var objects = device.FunctionalObjects(FunctionalCategory.Storage);
MediaStorageInfo infoss = GetStorageInfo(objects.First());
ulong size = infoss.FreeSpaceInBytes;
device.Disconnect();
}
例如,如果我的 smartphone 被命名为“samsung”,我将“samsam”放在这里
using (var device = devicess.First(d => d.FriendlyName == "samsam")) (instead of samsung)
应用程序崩溃,如果将其留空或我 运行 没有附加 phone 的代码,也会发生同样的事情。 我尝试了一些 try {} catch{} 但没有结果。 任何人都可以帮助我吗? 谢谢。
使用FirstOrDefault
代替First
:
var device = devicess.FirstOrDefault(d => d.FriendlyName == "MyCellPhone")
如果找不到匹配,这将 return null,而不是抛出异常。