protected override async void OnResume() { base.OnResume(); adapter = new UsbSerialPortAdapter(this); await PopulateListAsync(); //register the broadcast receivers detachedReceiver = new UsbDeviceDetachedReceiver(this); RegisterReceiver(detachedReceiver, new IntentFilter(UsbManager.ActionUsbDeviceDetached)); attachedReceiver = new UsbDeviceAttachedReceiver(this); RegisterReceiver(attachedReceiver, new IntentFilter(UsbManager.ActionUsbDeviceAttached)); }
protected override async void OnResume() { base.OnResume(); adapter = new UsbSerialPortAdapter(this); button.Click += async(sender, e) => { await OnItemClick(sender); }; await PopulateListAsync(); //register the broadcast receivers detachedReceiver = new UsbDeviceDetachedReceiver(this); RegisterReceiver(detachedReceiver, new IntentFilter(UsbManager.ActionUsbDeviceDetached)); }
/* public boolean grantAutomaticPermission(UsbDevice usbDevice) * { * try * { * Context context=YourActivityOrApplication; * PackageManager pkgManager=context.getPackageManager(); * ApplicationInfo appInfo=pkgManager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); * * Class serviceManagerClass=Class.forName("android.os.ServiceManager"); * Method getServiceMethod=serviceManagerClass.getDeclaredMethod("getService",String.class); * getServiceMethod.setAccessible(true); * android.os.IBinder binder=(android.os.IBinder)getServiceMethod.invoke(null, Context.USB_SERVICE); * * Class iUsbManagerClass=Class.forName("android.hardware.usb.IUsbManager"); * Class stubClass=Class.forName("android.hardware.usb.IUsbManager$Stub"); * Method asInterfaceMethod=stubClass.getDeclaredMethod("asInterface", android.os.IBinder.class); * asInterfaceMethod.setAccessible(true); * Object iUsbManager=asInterfaceMethod.invoke(null, binder); * * * System.out.println("UID : " + appInfo.uid + " " + appInfo.processName + " " + appInfo.permission); * final Method grantDevicePermissionMethod = iUsbManagerClass.getDeclaredMethod("grantDevicePermission", UsbDevice.class,int.class); * grantDevicePermissionMethod.setAccessible(true); * grantDevicePermissionMethod.invoke(iUsbManager, usbDevice,appInfo.uid); * * * System.out.println("Method OK : " + binder + " " + iUsbManager); * return true; * } * catch(Exception e) * { * System.err.println("Error trying to assing automatic usb permission : "); * e.printStackTrace(); * return false; * } * }*/ protected override async void OnResume() { base.OnResume(); firstTime = true; adapter = new UsbSerialPortAdapter(this); listView.Adapter = adapter; listView.ItemClick += async(sender, e) => { await OnItemClick(sender, e); }; await PopulateListAsync(); await OpenActivity(); //nuevo //register the broadcast receivers detachedReceiver = new UsbDeviceDetachedReceiver(this); RegisterReceiver(detachedReceiver, new IntentFilter(UsbManager.ActionUsbDeviceDetached)); }