android.hardware.usb.UsbDevice#getManufacturerName ( )源码实例Demo

下面列出了android.hardware.usb.UsbDevice#getManufacturerName ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: UsbGps4Droid   文件: USBGpsSettingsFragment.java
/**
 * Gets a summary of the current select product and vendor ids
 */
private String getSelectedDeviceSummary() {
    int productId = sharedPreferences.getInt(
            USBGpsProviderService.PREF_GPS_DEVICE_PRODUCT_ID, DEFAULT_GPS_PRODUCT_ID);
    int vendorId = sharedPreferences.getInt(
            USBGpsProviderService.PREF_GPS_DEVICE_VENDOR_ID, DEFAULT_GPS_VENDOR_ID);

    String deviceDisplayedName = "Device not connected - " + vendorId + ": " + productId;

    for (UsbDevice usbDevice: usbManager.getDeviceList().values()) {
        if (usbDevice.getVendorId() == vendorId && usbDevice.getProductId() == productId) {
            deviceDisplayedName =
                    "USB " + usbDevice.getDeviceProtocol() + " " + usbDevice.getDeviceName() +
                            " | " + vendorId + ": " + productId;

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                deviceDisplayedName = usbDevice.getManufacturerName() + usbDevice.getProductName() +
                        " | " + vendorId + ": " + productId;
            }

            break;
        }
    }

    return deviceDisplayedName;
}
 
源代码2 项目: xmrwallet   文件: Ledger.java
private Ledger(UsbManager usbManager, UsbDevice usbDevice) throws IOException {
    final BTChipTransport transport = BTChipTransportAndroidHID.open(usbManager, usbDevice);
    Timber.d("transport opened = %s", transport.toString());
    transport.setDebug(BuildConfig.DEBUG);
    this.transport = transport;
    this.name = usbDevice.getManufacturerName() + " " + usbDevice.getProductName();
    initKey();
}
 
源代码3 项目: UsbGps4Droid   文件: USBGpsSettingsFragment.java
/**
 * Updates the list of available devices in the list preference
 */
private void updateDevicesList() {
    HashMap<String, UsbDevice> connectedUsbDevices = usbManager.getDeviceList();
    String[] entryValues = new String[connectedUsbDevices.size()];
    String[] entries = new String[connectedUsbDevices.size()];

    int i = 0;
    // Loop through usb devices
    for (UsbDevice device : connectedUsbDevices.values()) {
        // Add the name and address to the ListPreference entities and entyValues

        String entryValue = device.getDeviceName() +
                " - " + device.getVendorId() + " : " + device.getProductId();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            entryValue = device.getManufacturerName() + " " + device.getProductName() +
                    " - " + device.getVendorId() + " : " + device.getProductId();
        }

        entryValues[i] = device.getDeviceName();
        entries[i] = entryValue;
        i++;
    }

    devicePreference.setEntryValues(entryValues);
    devicePreference.setEntries(entries);
}
 
源代码4 项目: libcommon   文件: DeviceFilter.java
@SuppressLint("NewApi")
public DeviceFilter(@NonNull final UsbDevice device, final boolean isExclude) {
	mVendorId = device.getVendorId();
	mProductId = device.getProductId();
	mClass = device.getDeviceClass();
	mSubclass = device.getDeviceSubclass();
	mProtocol = device.getDeviceProtocol();
	// getInterfaceCountは内部配列のlengthを返すので負にはならないはずだけど年のために下限を0にする
	final int count = Math.max(device.getInterfaceCount(), 0);
	mIntfClass = new int[count];
	mIntfSubClass = new int[count];
	mIntfProtocol = new int[count];
	for (int i = 0; i < count; i++) {
		final UsbInterface intf = device.getInterface(i);
		mIntfClass[i] = intf.getInterfaceClass();
		mIntfSubClass[i] = intf.getInterfaceSubclass();
		mIntfProtocol[i] = intf.getInterfaceProtocol();
	}
	if (BuildCheck.isLollipop()) {
		mManufacturerName = device.getManufacturerName();
		mProductName = device.getProductName();
		mSerialNumber = device.getSerialNumber();
	} else {
		mManufacturerName = null;
		mProductName = null;
		mSerialNumber = null;
	}
	this.isExclude = isExclude;
}
 
源代码5 项目: FireFiles   文件: UsbUtils.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static String getName(UsbDevice device){
    return Utils.hasLollipop() ? device.getManufacturerName() : nameForClass(device);
}
 
源代码6 项目: FireFiles   文件: UsbUtils.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static String getName(UsbDevice device){
    return Utils.hasLollipop() ? device.getManufacturerName() : nameForClass(device);
}
 
源代码7 项目: FireFiles   文件: UsbUtils.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static String getName(UsbDevice device){
    return Utils.hasLollipop() ? device.getManufacturerName() : nameForClass(device);
}
 
源代码8 项目: AndroidUSBCamera   文件: USBMonitor.java
/**
 * ベンダー名・製品名・バージョン・シリアルを取得する
 * @param manager
 * @param device
 * @param _info
 * @return
 */
@TargetApi(Build.VERSION_CODES.M)
public static UsbDeviceInfo updateDeviceInfo(final UsbManager manager, final UsbDevice device, final UsbDeviceInfo _info) {
	final UsbDeviceInfo info = _info != null ? _info : new UsbDeviceInfo();
	info.clear();

	if (device != null) {
		if (BuildCheck.isLollipop()) {
			info.manufacturer = device.getManufacturerName();
			info.product = device.getProductName();
			info.serial = device.getSerialNumber();
		}
		if (BuildCheck.isMarshmallow()) {
			info.usb_version = device.getVersion();
		}
		if ((manager != null) && manager.hasPermission(device)) {
			final UsbDeviceConnection connection = manager.openDevice(device);
			if(connection == null) {
				return null;
			}
			final byte[] desc = connection.getRawDescriptors();

			if (TextUtils.isEmpty(info.usb_version)) {
				info.usb_version = String.format("%x.%02x", ((int)desc[3] & 0xff), ((int)desc[2] & 0xff));
			}
			if (TextUtils.isEmpty(info.version)) {
				info.version = String.format("%x.%02x", ((int)desc[13] & 0xff), ((int)desc[12] & 0xff));
			}
			if (TextUtils.isEmpty(info.serial)) {
				info.serial = connection.getSerial();
			}

			final byte[] languages = new byte[256];
			int languageCount = 0;
			// controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout)
			try {
				int result = connection.controlTransfer(
					USB_REQ_STANDARD_DEVICE_GET, // USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE
    				USB_REQ_GET_DESCRIPTOR,
    				(USB_DT_STRING << 8) | 0, 0, languages, 256, 0);
				if (result > 0) {
        			languageCount = (result - 2) / 2;
				}
				if (languageCount > 0) {
					if (TextUtils.isEmpty(info.manufacturer)) {
						info.manufacturer = getString(connection, desc[14], languageCount, languages);
					}
					if (TextUtils.isEmpty(info.product)) {
						info.product = getString(connection, desc[15], languageCount, languages);
					}
					if (TextUtils.isEmpty(info.serial)) {
						info.serial = getString(connection, desc[16], languageCount, languages);
					}
				}
			} finally {
				connection.close();
			}
		}
		if (TextUtils.isEmpty(info.manufacturer)) {
			info.manufacturer = USBVendorId.vendorName(device.getVendorId());
		}
		if (TextUtils.isEmpty(info.manufacturer)) {
			info.manufacturer = String.format("%04x", device.getVendorId());
		}
		if (TextUtils.isEmpty(info.product)) {
			info.product = String.format("%04x", device.getProductId());
		}
	}
	return info;
}
 
源代码9 项目: libcommon   文件: UsbDeviceInfo.java
/**
 * USB機器情報(ベンダー名・製品名・バージョン・シリアル等)を取得する
 * @param connection
 * @param device
 * @param out
 * @return
 */
@SuppressLint("NewApi")
public static UsbDeviceInfo getDeviceInfo(
	@Nullable final UsbDeviceConnection connection,
	@Nullable final UsbDevice device, @Nullable final UsbDeviceInfo out) {

	final UsbDeviceInfo result = out != null ? out : new UsbDeviceInfo();
	result.clear();

	result.device = device;
	if (device != null) {
		if (BuildCheck.isAPI29() && (connection != null)) {
			// API>=29でターゲットAPI>=29ならパーミッションがないとシリアル番号を読み込めない
			// connectionがnullでないならopenできているのでパーミッションがある
			result.manufacturer = device.getManufacturerName();
			result.product = device.getProductName();
			result.configCounts = device.getConfigurationCount();
		} else if (BuildCheck.isLollipop()) {	// API >= 21
			result.manufacturer = device.getManufacturerName();
			result.product = device.getProductName();
			result.serial = device.getSerialNumber();
			result.configCounts = device.getConfigurationCount();
		}
		if (BuildCheck.isMarshmallow()) {	// API >= 23
			result.version = device.getVersion();
		}
		if (connection != null) {
			final byte[] desc = connection.getRawDescriptors();
			if (desc != null) {
				if (TextUtils.isEmpty(result.usb_version)) {
					result.usb_version = String.format("%x.%02x", ((int)desc[3] & 0xff), ((int)desc[2] & 0xff));
				}
				if (TextUtils.isEmpty(result.version)) {
					result.version = String.format("%x.%02x", ((int)desc[13] & 0xff), ((int)desc[12] & 0xff));
				}
				if (BuildCheck.isAPI29()) {	// API >= 29
					// API>=29でターゲットAPI>=29ならパーミッションがないとシリアル番号を読み込めない
					result.serial = device.getSerialNumber();
				}
				if (TextUtils.isEmpty(result.serial)) {
					result.serial = connection.getSerial();
				}
				if (result.configCounts < 0) {
					// FIXME 未実装 デバイスディスクリプタをパースせんとなりゃん
					result.configCounts = 1;
				}

				final byte[] languages = new byte[256];
				int languageCount = 0;
				// controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout)
				int res = connection.controlTransfer(
					USB_REQ_STANDARD_DEVICE_GET, // USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE
					USB_REQ_GET_DESCRIPTOR,
					(USB_DT_STRING << 8)/* | 0*/, 0, languages, 256, 0);
				if (res > 0) {
					languageCount = (res - 2) / 2;
				}
				if (languageCount > 0) {
					if (TextUtils.isEmpty(result.manufacturer)) {
						result.manufacturer = UsbUtils.getString(connection, desc[14], languageCount, languages);
					}
					if (TextUtils.isEmpty(result.product)) {
						result.product = UsbUtils.getString(connection, desc[15], languageCount, languages);
					}
					if (TextUtils.isEmpty(result.serial)) {
						result.serial = UsbUtils.getString(connection, desc[16], languageCount, languages);
					}
				}
			}
		}
		if (TextUtils.isEmpty(result.manufacturer)) {
			result.manufacturer = USBVendorId.vendorName(device.getVendorId());
		}
		if (TextUtils.isEmpty(result.manufacturer)) {
			result.manufacturer = String.format("%04x", device.getVendorId());
		}
		if (TextUtils.isEmpty(result.product)) {
			result.product = String.format("%04x", device.getProductId());
		}
	}

	return result;
}
 
源代码10 项目: DeviceConnect-Android   文件: USBMonitor.java
/**
 * ベンダー名・製品名・バージョン・シリアルを取得する
 * @param manager
 * @param device
 * @param _info
 * @return
 */
public static UsbDeviceInfo updateDeviceInfo(final UsbManager manager, final UsbDevice device, final UsbDeviceInfo _info) {
	final UsbDeviceInfo info = _info != null ? _info : new UsbDeviceInfo();
	info.clear();

	if (device != null) {
		if (BuildCheck.isLollipop()) {
			info.manufacturer = device.getManufacturerName();
			info.product = device.getProductName();
			info.serial = device.getSerialNumber();
		}
		if (BuildCheck.isMarshmallow()) {
			info.usb_version = device.getVersion();
		}
		if ((manager != null) && manager.hasPermission(device)) {
			final UsbDeviceConnection connection = manager.openDevice(device);
			final byte[] desc = connection.getRawDescriptors();

			if (TextUtils.isEmpty(info.usb_version)) {
				info.usb_version = String.format("%x.%02x", ((int)desc[3] & 0xff), ((int)desc[2] & 0xff));
			}
			if (TextUtils.isEmpty(info.version)) {
				info.version = String.format("%x.%02x", ((int)desc[13] & 0xff), ((int)desc[12] & 0xff));
			}
			if (TextUtils.isEmpty(info.serial)) {
				info.serial = connection.getSerial();
			}

			final byte[] languages = new byte[256];
			int languageCount = 0;
			// controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout)
			try {
				int result = connection.controlTransfer(
					USB_REQ_STANDARD_DEVICE_GET, // USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE
    				USB_REQ_GET_DESCRIPTOR,
    				(USB_DT_STRING << 8) | 0, 0, languages, 256, 0);
				if (result > 0) {
        			languageCount = (result - 2) / 2;
				}
				if (languageCount > 0) {
					if (TextUtils.isEmpty(info.manufacturer)) {
						info.manufacturer = getString(connection, desc[14], languageCount, languages);
					}
					if (TextUtils.isEmpty(info.product)) {
						info.product = getString(connection, desc[15], languageCount, languages);
					}
					if (TextUtils.isEmpty(info.serial)) {
						info.serial = getString(connection, desc[16], languageCount, languages);
					}
				}
			} finally {
				connection.close();
			}
		}
		if (TextUtils.isEmpty(info.manufacturer)) {
			info.manufacturer = USBVendorId.vendorName(device.getVendorId());
		}
		if (TextUtils.isEmpty(info.manufacturer)) {
			info.manufacturer = String.format("%04x", device.getVendorId());
		}
		if (TextUtils.isEmpty(info.product)) {
			info.product = String.format("%04x", device.getProductId());
		}
	}
	return info;
}