Exemplo n.º 1
0
        /// <summary>
        /// Requests temporary permission for the given package to access the device.
        /// This may result in a system dialog being displayed to the user if permission had not already been granted.
        /// </summary>
        /// <returns>The observable sequence of permission values.</returns>
        /// <param name="manager">The UsbManager system service.</param>
        /// <param name="context">The Context to request the permission from.</param>
        /// <param name="device">The UsbDevice to request permission for.</param>
        public static IObservable <bool> PermissionRequested(this UsbManager manager, Context context, UsbDevice device) => // TODO: Create Test
        Observable.Create <bool>(observer =>
        {
            var usbPermissionReceiver = new UsbDevicePermissionReceiver(observer, device);
            context.RegisterReceiver(usbPermissionReceiver, new IntentFilter(ActionUsbPermission));

            var intent = PendingIntent.GetBroadcast(context, 0, new Intent(ActionUsbPermission), 0);
            manager.RequestPermission(device, intent);

            return(Disposable.Create(() => context.UnregisterReceiver(usbPermissionReceiver)));
        });
Exemplo n.º 2
0
        /// <summary>
        /// Requests temporary permission for the given package to access the device. 
        /// This may result in a system dialog being displayed to the user if permission had not already been granted.
        /// </summary>
        /// <returns>The observable sequence of permission values.</returns>
        /// <param name="manager">The UsbManager system service.</param>
        /// <param name="context">The Context to request the permission from.</param>
        /// <param name="device">The UsbDevice to request permission for.</param>
        public static IObservable<bool> PermissionRequested(this UsbManager manager, Context context, UsbDevice device)
        {
            return Observable.Create<bool> (observer => {
                var usbPermissionReceiver = new UsbDevicePermissionReceiver (observer, device);
                context.RegisterReceiver (usbPermissionReceiver, new IntentFilter (ACTION_USB_PERMISSION));

                var intent = PendingIntent.GetBroadcast (context, 0, new Intent (ACTION_USB_PERMISSION), 0);
                manager.RequestPermission (device, intent);

                return Disposable.Create (() => context.UnregisterReceiver (usbPermissionReceiver));
            });
        }