Search in sources :

Example 6 with UsbDevice

use of android.hardware.usb.UsbDevice in project platform_frameworks_base by android.

the class UsbHostManager method openDevice.

/* Opens the specified USB device */
public ParcelFileDescriptor openDevice(String deviceName) {
    synchronized (mLock) {
        if (isBlackListed(deviceName)) {
            throw new SecurityException("USB device is on a restricted bus");
        }
        UsbDevice device = mDevices.get(deviceName);
        if (device == null) {
            // if it is not in mDevices, it either does not exist or is blacklisted
            throw new IllegalArgumentException("device " + deviceName + " does not exist or is restricted");
        }
        getCurrentSettings().checkPermission(device);
        return nativeOpenDevice(deviceName);
    }
}
Also used : UsbDevice(android.hardware.usb.UsbDevice)

Example 7 with UsbDevice

use of android.hardware.usb.UsbDevice in project platform_frameworks_base by android.

the class UsbAlsaManager method dump.

//
// Logging
//
public void dump(IndentingPrintWriter pw) {
    pw.println("USB Audio Devices:");
    for (UsbDevice device : mAudioDevices.keySet()) {
        pw.println("  " + device.getDeviceName() + ": " + mAudioDevices.get(device));
    }
    pw.println("USB MIDI Devices:");
    for (UsbDevice device : mMidiDevices.keySet()) {
        pw.println("  " + device.getDeviceName() + ": " + mMidiDevices.get(device));
    }
}
Also used : UsbDevice(android.hardware.usb.UsbDevice)

Example 8 with UsbDevice

use of android.hardware.usb.UsbDevice in project platform_frameworks_base by android.

the class SinkActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
    setContentView(R.layout.sink_activity);
    mLogTextView = (TextView) findViewById(R.id.logTextView);
    mLogTextView.setMovementMethod(ScrollingMovementMethod.getInstance());
    mLogger = new TextLogger();
    mFpsTextView = (TextView) findViewById(R.id.fpsTextView);
    mSurfaceView = (SurfaceView) findViewById(R.id.surfaceView);
    mSurfaceView.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            sendHidTouch(event);
            return true;
        }
    });
    mLogger.log("Waiting for accessory display source to be attached to USB...");
    IntentFilter filter = new IntentFilter();
    filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
    filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
    filter.addAction(ACTION_USB_DEVICE_PERMISSION);
    mReceiver = new DeviceReceiver();
    registerReceiver(mReceiver, filter);
    Intent intent = getIntent();
    if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) {
        UsbDevice device = intent.<UsbDevice>getParcelableExtra(UsbManager.EXTRA_DEVICE);
        if (device != null) {
            onDeviceAttached(device);
        }
    } else {
        Map<String, UsbDevice> devices = mUsbManager.getDeviceList();
        if (devices != null) {
            for (UsbDevice device : devices.values()) {
                onDeviceAttached(device);
            }
        }
    }
}
Also used : IntentFilter(android.content.IntentFilter) UsbDevice(android.hardware.usb.UsbDevice) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) SurfaceView(android.view.SurfaceView) View(android.view.View) TextView(android.widget.TextView) MotionEvent(android.view.MotionEvent)

Example 9 with UsbDevice

use of android.hardware.usb.UsbDevice in project android_frameworks_base by ParanoidAndroid.

the class UsbHostManager method usbDeviceAdded.

/* Called from JNI in monitorUsbHostBus() to report new USB devices */
private void usbDeviceAdded(String deviceName, int vendorID, int productID, int deviceClass, int deviceSubclass, int deviceProtocol, /* array of quintuples containing id, class, subclass, protocol
               and number of endpoints for each interface */
int[] interfaceValues, /* array of quadruples containing address, attributes, max packet size
              and interval for each endpoint */
int[] endpointValues) {
    if (isBlackListed(deviceName) || isBlackListed(deviceClass, deviceSubclass, deviceProtocol)) {
        return;
    }
    synchronized (mLock) {
        if (mDevices.get(deviceName) != null) {
            Slog.w(TAG, "device already on mDevices list: " + deviceName);
            return;
        }
        int numInterfaces = interfaceValues.length / 5;
        Parcelable[] interfaces = new UsbInterface[numInterfaces];
        try {
            // repackage interfaceValues as an array of UsbInterface
            int intf, endp, ival = 0, eval = 0;
            for (intf = 0; intf < numInterfaces; intf++) {
                int interfaceId = interfaceValues[ival++];
                int interfaceClass = interfaceValues[ival++];
                int interfaceSubclass = interfaceValues[ival++];
                int interfaceProtocol = interfaceValues[ival++];
                int numEndpoints = interfaceValues[ival++];
                Parcelable[] endpoints = new UsbEndpoint[numEndpoints];
                for (endp = 0; endp < numEndpoints; endp++) {
                    int address = endpointValues[eval++];
                    int attributes = endpointValues[eval++];
                    int maxPacketSize = endpointValues[eval++];
                    int interval = endpointValues[eval++];
                    endpoints[endp] = new UsbEndpoint(address, attributes, maxPacketSize, interval);
                }
                // don't allow if any interfaces are blacklisted
                if (isBlackListed(interfaceClass, interfaceSubclass, interfaceProtocol)) {
                    return;
                }
                interfaces[intf] = new UsbInterface(interfaceId, interfaceClass, interfaceSubclass, interfaceProtocol, endpoints);
            }
        } catch (Exception e) {
            // beware of index out of bound exceptions, which might happen if
            // a device does not set bNumEndpoints correctly
            Slog.e(TAG, "error parsing USB descriptors", e);
            return;
        }
        UsbDevice device = new UsbDevice(deviceName, vendorID, productID, deviceClass, deviceSubclass, deviceProtocol, interfaces);
        mDevices.put(deviceName, device);
        getCurrentSettings().deviceAttached(device);
    }
}
Also used : UsbInterface(android.hardware.usb.UsbInterface) UsbEndpoint(android.hardware.usb.UsbEndpoint) UsbDevice(android.hardware.usb.UsbDevice) Parcelable(android.os.Parcelable) UsbEndpoint(android.hardware.usb.UsbEndpoint)

Example 10 with UsbDevice

use of android.hardware.usb.UsbDevice in project android_frameworks_base by ResurrectionRemix.

the class DeviceDisconnectedReceiver method onReceive.

@Override
public void onReceive(Context context, Intent intent) {
    UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
    String deviceName = device.getDeviceName();
    Log.d(TAG, "ACTION_USB_DEVICE_DETACHED " + deviceName);
    // close our activity if the device it is displaying is disconnected
    if (deviceName.equals(mDeviceName)) {
        mActivity.finish();
    }
}
Also used : UsbDevice(android.hardware.usb.UsbDevice)

Aggregations

UsbDevice (android.hardware.usb.UsbDevice)49 IOException (java.io.IOException)20 UsbDeviceConnection (android.hardware.usb.UsbDeviceConnection)10 Intent (android.content.Intent)9 UsbEndpoint (android.hardware.usb.UsbEndpoint)5 UsbInterface (android.hardware.usb.UsbInterface)5 MtpDevice (android.mtp.MtpDevice)5 Uri (android.net.Uri)5 PendingIntent (android.app.PendingIntent)4 IntentFilter (android.content.IntentFilter)4 UsbConfiguration (android.hardware.usb.UsbConfiguration)4 MotionEvent (android.view.MotionEvent)4 SurfaceView (android.view.SurfaceView)4 View (android.view.View)4 TextView (android.widget.TextView)4 UsbManager (android.hardware.usb.UsbManager)1 Parcelable (android.os.Parcelable)1