This application will provide information about almost all currently plugged-in USB devices.

Overview

USB Device Info

Android Arsenal

Android 3.1 introduced USB host mode which allows the user to plug USB devices to your Android tablet in the same way as a Desktop PC and extend its functionality (if the tablet has the correct drivers of course).

This application will provide information about almost all currently plugged-in USB device (see below for more info about the 'almost').

Information includes:

  • The Device class
  • The USB device path
  • The Vendor ID (VID) and the Product ID (PID).
  • A List of all interfaces and their endpoints.

No ads.

Apart from using the build in API it now also parses "/sys/bus/usb/devices/" to display devices which are hidden by the Android OS, although in less detail. This part is also available as a Java library (see Library below)

Important

As of version 2.0.0 SysBusUsbDevice is no longer Parcelable; it is now Serializable. This is so that the library can be used in pure java projects.

Library

The Linux part of the project is available as an artifact for use with Gradle/Maven. To use that, add the following blocks:

gradle

	repositories {
		maven {
			url "https://dl.bintray.com/alt236/maven"
		}
	}

	dependencies {
		compile 'uk.co.alt236:usbdeviceenumerator:2.0.0'
	}

maven

    <dependency>
      <groupId>uk.co.alt236</groupId>
      <artifactId>usbdeviceenumerator</artifactId>
      <version>2.0.0</version>
      <type>pom</type>
    </dependency>

Notes

  • If you download the accompanying databases, the application will also be able to provide you with additional info such as the Vendor of the device (which is not necessarily the brand!), the vendor's logo and the product name.
  • As this application is using the default Android API some devices might not appear. USB Hubs (and devices connected to them) are invisible event though they seem to function properly, and mice seem to be filtered out of the provided list. I'm looking into ways to fix this.
  • Device Subclass resolution will be added in the next version.
  • The database is parsed from: http://www.linux-usb.org/usb.ids
  • SELinux can interfere with accessing sysfs which will block the Linux part of the app from working.

Changelog

  • v0.0.1 First public release\n
  • v0.0.2 Added Interface and Endpoint resolution\n
  • v0.0.3 Databases can now be downloaded.\n
  • v0.0.4 Now also parses /sys/bus/usb/devices/ for those pesky devices android hides. Added export.
  • v0.0.5 Added support for small screen devices. Bugfixes and stability improvements.
  • v1.0.0 Materialise design, better tablet support, code overhaul
  • v2.0.0 Added debug screens, SysBusUsbDevice is now Serializable instead of Parcelable
  • v2.0.1 Switched to HTTPS, now using internal storage instead of external.

Permission Explanation

  • ACCESS_NETWORK_STATE: Used to check if the device is on-line and using which interface.
  • INTERNET: Used to go on-line and download the updated database.
  • WRITE_EXTERNAL_STORAGE: Used to write the database to the SD card.

Links

Credits

Author: Alexandros Schillings.

All logos are the property of their respective owners

The code in this project is licensed under the Apache Software License 2.0.

Copyright (c) 2020 Alexandros Schillings.

Comments
  • Correct vendor and product informations in Android view

    Correct vendor and product informations in Android view

    As already mentioned on Google Play the product ID in the Android (API) view was completely wrong (because the so named device ID was displayed). Further the view has not shown the reported vendor and product name. From API level 21 (Android 5.0 Lollipop) it is possible.

    This will fix issue #9.

    Signed-off-by: Stephan Linz [email protected]

    opened by rexut 1
  • App crash if dir.getFiles returns null - Nougat

    App crash if dir.getFiles returns null - Nougat

    ava.lang.RuntimeException: Unable to start activity ComponentInfo{aws.apps.usbDeviceEnumerator/aws.apps.usbDeviceEnumerator.ui.main.MainActivity}: java.lang.NullPointerException: Attempt to get length of null array at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.NullPointerException: Attempt to get length of null array at uk.co.alt236.usbdeviceenumerator.sysbususb.SysBusUsbManager.populateList(SysBusUsbManager.java:77) at uk.co.alt236.usbdeviceenumerator.sysbususb.SysBusUsbManager.getUsbDevices(SysBusUsbManager.java:61) at aws.apps.usbDeviceEnumerator.ui.main.MainActivity.refreshUsbDevices(MainActivity.java:203) at aws.apps.usbDeviceEnumerator.ui.main.MainActivity.onCreate(MainActivity.java:132) at android.app.Activity.performCreate(Activity.java:6664) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) ... 9 more

    opened by alt236 1
  • USB recognized in Linux??

    USB recognized in Linux??

    I'm using a nexus 7 (version 4.4.4) and my USB port stopped working properly a few days ago and I downloaded the USB device Info to troubleshoot

    My USB devices (connected via 2 separate OTG cables... One brand new) don't show up in the android section, but even when nothing is plugged in I see "usb1" under the Linux tab. When I click it the app freezes

    Any idea why the application would not detect devices (phone, camera or thumb drive) or how I can troubleshoot?

    Thanks!

    opened by matcrawf 1
  • Can i Use this plugin with unity android?

    Can i Use this plugin with unity android?

    I need to get the path of usb in my android game. Can this plugin help with that??

    If yes, can you tell me how do I implement this with my game in c# unity?

    I am not trained with java. It will be kind of you to help me with this. Thanks in advance

    opened by Divyanshu-del 0
  • NullPointerException

    NullPointerException

    //package name: aws.apps.usbDeviceEnumerator //version: 1.0.0 java.lang.NullPointerException at aws.apps.usbDeviceEnumerator.ui.progress.ProgressDialogFragment.setTitle(ProgressDialogFragment.java:48) at aws.apps.usbDeviceEnumerator.ui.progress.ProgressDialogControl.updateProgress(ProgressDialogControl.java:37) at aws.apps.usbDeviceEnumerator.ui.dbupdate.FileDownloadTask.onProgressUpdate(FileDownloadTask.java:137) at aws.apps.usbDeviceEnumerator.ui.dbupdate.FileDownloadTask.onProgressUpdate(FileDownloadTask.java:21) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:647) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method)

    opened by lingling-fan 1
  • Hi, is there some questions

    Hi, is there some questions

    When I use a usb storage, it has device info under api, but has nothing under linux I want to know, why doesn't it have ? And I got a other usb equipment (not a usb storage), it has 3 devices under linux "/sys/bus/usb/devices" is what ? How can we read files from the usb equipment, is there any path ?

    opened by fly7632785 0
  • how to debug app?

    how to debug app?

    As the app requires a USB device, so emulator cannot be connected to USB device. Then, if I run the app with my android phone, usb still cannot be connected as I already plug in the cable from PC to my phone.. Do I need to buy a usb cable that have many branch for phone? or is this impossible.?

    opened by norani 1
Releases(v2.0.0)
Android USB host serial driver library for CDC, FTDI, Arduino and other devices.

usb-serial-for-android This is a driver library for communication with Arduinos and other USB serial hardware on Android, using the Android USB Host M

mike w 3.8k Dec 30, 2022
:inbox_tray: [Android Library] Hunt down all package information

Android library to hunt down package information. The library is built for simplicity and approachability. It not only eliminates most boilerplate cod

Nishant Srivastava 141 Nov 17, 2022
It makes a preview from an url, grabbing all the information such as title, relevant texts and images. This a version for Android of my web link preview https://github.com/LeonardoCardoso/Link-Preview

LeoCardz Link Preview for Android It makes a preview from an url, grabbing all the information such as title, relevant texts and images. Visual Exampl

Leonardo Cardoso 420 Nov 19, 2022
Create GIFs from Android devices (pronounced "gif cap")

gifcap A shell script to record GIFs from your Android devices A picture is worth 1,000 words - and, when prototyping animations, recording visual gli

Outlook 207 Nov 26, 2022
Android Resource Manager application to manage and analysis your app resources with many features like image resize, Color, Dimens and code Analysis

Android Resource Manager application to manage and analysis your app resources with many features like image resize, Color, Dimens and code Analysis

Amr Hesham 26 Nov 16, 2022
Connect adb from devices to androidstudio by wifi without usb anymore

WIFI ADB There are two projects in the repository. The first one is an android project,and the second is an intellij plugin project. You can see more

Huazhou 273 Jan 6, 2023
Android USB host serial driver library for CDC, FTDI, Arduino and other devices.

usb-serial-for-android This is a driver library for communication with Arduinos and other USB serial hardware on Android, using the Android USB Host M

mike w 3.8k Dec 30, 2022
WhatsApp Android App with almost all features completed

WhatsApp Android App with almost all features completed

Raushan 3 Jun 8, 2022
Almost all modern mobile consumer apps are constructed from the same 4 components

?? Why? Almost all modern mobile consumer apps are constructed from the same 4 components. A component to communicate to the backend server A way to o

AT 0 Nov 10, 2021
Movo (Movie Information) is an android application to find out all the Movie Information and Details.

Movo About The Project Screen.Recording.2022-08-12.at.08.53.46_1.mp4 Movo (Movie Information) is an android application to find out all the Movie Info

Reihan Fatilla 4 Sep 28, 2022
Simple Kotlin application that displays the currently available network interfaces on your machine

Network-Interface-Checker Simple Kotlin application that displays the currently available network interfaces on your machine. An executable jar can be

Joshua Soberg 3 Jun 10, 2022
This is a food donation android application designed to reduce food wastage by donating excess food to poor or needy people. Based on Kotlin and currently under development

FOODONOR This is a food donation android application designed to reduce food wastage by donating excess food to poor or needy people. Based on Kotlin

Robert Muriithi 8 Oct 12, 2022
This a Ride User app in which in integrate almost every features of a Ride Share app.

My-Ride-App This a Ride app(User) in which I integrate almost every features of a Ride Share app. Here I use kotlin programing language, Google map SD

Khairul Islam 5 Apr 27, 2022
Android camera and serial communication utility that interacts with another device via a USB connection.

PVIT-Payload-Source Android camera and serial communication utility that interacts with another device via a USB connection. PVIT = Palos Verdes Insti

Zeroz & Onez 1 Nov 10, 2021
Android library for drawing Pie charts and Donut charts with the ability to customize almost anything in it.

A Pie/Donut*/Ring chart for Android, customizable to the most extent possible. For tutorial and examples refer to the website. build.gradle[.kts] impl

Mahdi Hosseinzadeh 20 Nov 18, 2022
Cordova plugin for Android Serial USB communication (easily connect an Arduino board to an Android device).

PR-DC cordova-plugin-serialusb Cordova plugin for Android Serial USB communication. This plugin makes a connection to the external board trivial, for

PR-DC 3 May 8, 2022
(almost) Mono theme for IntelliJ

AlmostMonoTheme Template ToDo list Create a new IntelliJ Platform Plugin Template project. Get familiar with the template documentation. Verify the pl

Abhilash Meesala 1 Jan 27, 2022
A Music Player for android that renders beautiful DNA(Visualization) of the currently playing music.

MusicDNA - A Music Player like no other A Music Player for android that makes use of the Visualizer Class for rendering a beautiful DNA (Visualization

Harjot Singh Oberai 2.8k Jan 5, 2023