#c# #android #.net #xamarin.forms
#c# #Android #.net #xamarin.формы #xamarin.forms
Вопрос:
В Xamarin.Формы, при подключении USB-устройства пользователь запрашивает разрешение на управление этим устройством. И это происходит каждый раз, когда подключается устройство. Это будет раздражать пользователя. Я сделал следующее: я создал файл device_filter.xml , в который я ввел данные об устройстве:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device vendor-id="some_vendor_id" product-id="some_product_id" />
</resources>
А в MainActivity.cs указаны следующие атрибуты:
[IntentFilter(new[] { UsbManager.ActionUsbDeviceAttached })]
[MetaData(UsbManager.ActionUsbDeviceAttached, Resource = "@xml/device_filter")]
Это сработало. Теперь он запрашивает доступ только при первом подключении, но в то же время теперь происходит следующее: когда устройство подключено, запускается мое приложение, если оно не было запущено. Как это исправить?
Комментарии:
1. Поскольку вы добавили фильтр намерений в действие начальной загрузки в файле манифеста для указания идентификатора поставщика и идентификатора продукта USB-устройства, пока этот тип USB-устройства подключен, система появится, чтобы открыть указанное приложение.
2. Итак. Если я попытаюсь удалить атрибут с помощью этого файла, приложение снова начнет запрашивать разрешение при каждом подключении устройства.
3. Это также кажется разумным, потому что, если вы не задаете конкретный vid, он не может быть уверен, что одно и то же устройство подключается каждый раз, поэтому вам нужно каждый раз запрашивать разрешение.
4. Что вы можете посоветовать мне в этом случае?
5. Из-за этого дизайна, если вы не хотите запрашивать разрешения каждый раз, я думаю, вам может понадобиться иметь root-права или изменить исходный код, но это не рекомендуется.