0

I can detect whether the OTG cable attached or detached. But how to detect if OTG cable already connected when app runs. My app only detects if otg cable attached or detached.

  public class BootUpReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.e("USB", "Decive Connected -> " + action);

        if (action.equalsIgnoreCase(ACTION_USB_ATTACHED)) {

            UsbDevice device = (UsbDevice) intent
                    .getParcelableExtra(UsbManager.EXTRA_DEVICE);
            if (device != null) {
                int vendorID = device.getVendorId();
                int productID = device.getProductId();

                //If Product and Vendor Id match then set boolean "true" in global variable
                tv_otg.setText("External OTG storage device connected !");
                Log.e("true", "true");

            }

        } else if (action.equalsIgnoreCase(ACTION_USB_DETACHED)) {
            //When ever device Detach set your global variable to "false"
            tv_otg.setText("External OTG storage device disconnected !");
            Log.e("ACTION_USB_DETACHED", "ACTION_USB_DETACHED");
        }


    }
}

  bootupreceiver = new BootUpReceiver();
        IntentFilter filter = new IntentFilter();
        filter.addAction(ACTION_USB_ATTACHED);
        filter.addAction(ACTION_USB_DETACHED);

        filter.setPriority(100);

        registerReceiver(bootupreceiver, filter);
MurugananthamS
  • 2,395
  • 4
  • 20
  • 49
Mukta Ghosh
  • 360
  • 1
  • 9

1 Answers1

0
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
...
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while(deviceIterator.hasNext()){
    UsbDevice device = deviceIterator.next();
    //your code for check device check name logic
}

Check DOC

Ganesh Pokale
  • 1,538
  • 1
  • 14
  • 28