/// <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))); });
/// <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)); }); }