Search in sources :

Example 46 with UsbDevice

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

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)

Example 47 with UsbDevice

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

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 48 with UsbDevice

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

the class UsbHostManager method beginUsbDeviceAdded.

/* Called from JNI in monitorUsbHostBus() to report new USB devices
       Returns true if successful, in which case the JNI code will continue adding configurations,
       interfaces and endpoints, and finally call endUsbDeviceAdded after all descriptors
       have been processed
     */
private boolean beginUsbDeviceAdded(String deviceName, int vendorID, int productID, int deviceClass, int deviceSubclass, int deviceProtocol, String manufacturerName, String productName, int version, String serialNumber) {
    if (DEBUG) {
        Slog.d(TAG, "usb:UsbHostManager.beginUsbDeviceAdded(" + deviceName + ")");
        // Audio Class Codes:
        // Audio: 0x01
        // Audio Subclass Codes:
        // undefined: 0x00
        // audio control: 0x01
        // audio streaming: 0x02
        // midi streaming: 0x03
        // some useful debugging info
        Slog.d(TAG, "usb: nm:" + deviceName + " vnd:" + vendorID + " prd:" + productID + " cls:" + deviceClass + " sub:" + deviceSubclass + " proto:" + deviceProtocol);
    }
    if (isBlackListed(deviceName) || isBlackListed(deviceClass, deviceSubclass, deviceProtocol)) {
        return false;
    }
    synchronized (mLock) {
        if (mDevices.get(deviceName) != null) {
            Slog.w(TAG, "device already on mDevices list: " + deviceName);
            return false;
        }
        if (mNewDevice != null) {
            Slog.e(TAG, "mNewDevice is not null in endUsbDeviceAdded");
            return false;
        }
        // Create version string in "%.%" format
        String versionString = Integer.toString(version >> 8) + "." + (version & 0xFF);
        mNewDevice = new UsbDevice(deviceName, vendorID, productID, deviceClass, deviceSubclass, deviceProtocol, manufacturerName, productName, versionString, serialNumber);
        mNewConfigurations = new ArrayList<UsbConfiguration>();
        mNewInterfaces = new ArrayList<UsbInterface>();
        mNewEndpoints = new ArrayList<UsbEndpoint>();
    }
    return true;
}
Also used : UsbDevice(android.hardware.usb.UsbDevice) UsbInterface(android.hardware.usb.UsbInterface) UsbEndpoint(android.hardware.usb.UsbEndpoint) UsbConfiguration(android.hardware.usb.UsbConfiguration)

Example 49 with UsbDevice

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

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)

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