Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Mobile Development
  3. Android
  4. Android OTG Detect App

Android OTG Detect App

Scheduled Pinned Locked Moved Android
androidadobehardwaretutorialquestion
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Pavlex4
    wrote on last edited by
    #1

    How to use app to detect when otg cable is plugged in and when it's plugged out? Is there intent for otg cable like this for usb devices: "android.hardware.usb.action.USB_DEVICE_ATTACHED" I have created app like this but I only detects flash drive not otg cable:

    public class MainActivity extends AppCompatActivity
    {

    private TextView mInfo;
    private Logger mLogger;
    private HashMap mHashMap = new HashMap();
    private UsbManager mUsbManager;
    private PendingIntent mPermissionIntent;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity\_main);
    
        mInfo = (TextView)findViewById(R.id.log);
    
        mLogger = new Logger(this);
        mLogger.setMode(Logger.MODE\_TOAST);
    
        mUsbManager = (UsbManager) getSystemService(Context.USB\_SERVICE);
    
        usbConnection();
    }
    
    private void usbConnection() {
        IntentFilter filter = new IntentFilter(UsbManager.ACTION\_USB\_DEVICE\_ATTACHED);
        registerReceiver(mUsbAttachReceiver , filter);
        filter = new IntentFilter(UsbManager.ACTION\_USB\_DEVICE\_DETACHED);
        registerReceiver(mUsbDetachReceiver , filter);
    
        mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION\_USB\_PERMISSION), 0);
        filter = new IntentFilter(ACTION\_USB\_PERMISSION);
        registerReceiver(mUsbReceiver, filter);
    
        showDevices();
    }
    
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mUsbDetachReceiver);
        unregisterReceiver(mUsbAttachReceiver);
        unregisterReceiver(mUsbReceiver);
    };
    
    BroadcastReceiver mUsbDetachReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
    
            if (UsbManager.ACTION\_USB\_DEVICE\_DETACHED.equals(action)) {
                UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA\_DEVICE);
                if (device != null) {
                    // call your method that cleans up and closes communication with the device
                    UsbDataBinder binder = mHashMap.get(device);
                    if (binder != null) {
                        binder.onDestroy();
                        mHashMap.remove(device);
                        Toast.makeText(MainActivity.this, "Attached!", Toast.LEN
    
    L 1 Reply Last reply
    0
    • P Pavlex4

      How to use app to detect when otg cable is plugged in and when it's plugged out? Is there intent for otg cable like this for usb devices: "android.hardware.usb.action.USB_DEVICE_ATTACHED" I have created app like this but I only detects flash drive not otg cable:

      public class MainActivity extends AppCompatActivity
      {

      private TextView mInfo;
      private Logger mLogger;
      private HashMap mHashMap = new HashMap();
      private UsbManager mUsbManager;
      private PendingIntent mPermissionIntent;
      
      @Override
      protected void onCreate(Bundle savedInstanceState)
      {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity\_main);
      
          mInfo = (TextView)findViewById(R.id.log);
      
          mLogger = new Logger(this);
          mLogger.setMode(Logger.MODE\_TOAST);
      
          mUsbManager = (UsbManager) getSystemService(Context.USB\_SERVICE);
      
          usbConnection();
      }
      
      private void usbConnection() {
          IntentFilter filter = new IntentFilter(UsbManager.ACTION\_USB\_DEVICE\_ATTACHED);
          registerReceiver(mUsbAttachReceiver , filter);
          filter = new IntentFilter(UsbManager.ACTION\_USB\_DEVICE\_DETACHED);
          registerReceiver(mUsbDetachReceiver , filter);
      
          mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION\_USB\_PERMISSION), 0);
          filter = new IntentFilter(ACTION\_USB\_PERMISSION);
          registerReceiver(mUsbReceiver, filter);
      
          showDevices();
      }
      
      protected void onDestroy() {
          super.onDestroy();
          unregisterReceiver(mUsbDetachReceiver);
          unregisterReceiver(mUsbAttachReceiver);
          unregisterReceiver(mUsbReceiver);
      };
      
      BroadcastReceiver mUsbDetachReceiver = new BroadcastReceiver() {
          public void onReceive(Context context, Intent intent) {
              String action = intent.getAction();
      
              if (UsbManager.ACTION\_USB\_DEVICE\_DETACHED.equals(action)) {
                  UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA\_DEVICE);
                  if (device != null) {
                      // call your method that cleans up and closes communication with the device
                      UsbDataBinder binder = mHashMap.get(device);
                      if (binder != null) {
                          binder.onDestroy();
                          mHashMap.remove(device);
                          Toast.makeText(MainActivity.this, "Attached!", Toast.LEN
      
      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      Why have you reposted this question? You have already been given a number of suggestions below.

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups