标签: android-usb

android UsbDeviceConnection.requestWait() 超时

我正在尝试将 USB 调谐卡连接到 android 设备(版本 19)。

目前我正在使用 UsbDeviceConnection.requestWait() 读取数据,然后是 16kb 的 UsbRequest.queue。一切正常。

如果调谐器没有输入,USB 将不会接收任何数据。在这种情况下, requestWait() 将永远阻塞。我尝试使用 UsbRequest.close 和 UsbRequest.cancel 但没有用。

我查看了链接“ http://code.google.com/p/android/issues/detail?id=39522 ”,它提到了同样的问题,但需要编写一个新的 JNI 接口。

我的要求是我应该能够摆脱等待并且不想尝试编写新的 JNI 接口(按照上面的帖子)。请建议。

usb android android-usb

5
推荐指数
0
解决办法
1275
查看次数

抑制 UsbRequestJNI / ALOGD 日志消息

我正在开发一个 Android 应用程序,它从一些自定义硬件传输串行数据。我正在使用 mik3y 的usb-serial-for-android库以 OTG 模式通过 USB 获取串行数据,经过一些调整后工作正常。

\n\n

然而,对于通过 USB 接口的每笔交易,UsbRequestJNI都会记录一条initclose消息。这使得 LogCat 每秒被数千条日志消息淹没(注意时间戳):

\n\n
02-17 09:30:21.590    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.590    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.594    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.594    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.598    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.598    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.602    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.602    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.606    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.606    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.610    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.610    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.614    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.614    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 …
Run Code Online (Sandbox Code Playgroud)

java android usbserial android-usb

5
推荐指数
1
解决办法
1518
查看次数

如何在没有外部库的情况下从USB麦克风录制高质量音频

我正在努力如何从连接的USB麦克风捕获音频流.我曾尝试使用MediaCapturewith MediaRecorder.AudioSource.MIC作为源,但录音质量对我来说并不是很有用,你无法确定音频源是USB还是内置设备麦克风.我需要的是使用USB音频功能,但到目前为止我无法取得任何进展.

使用第三方库对我来说太过分了,因为我只需要从麦克风接收音频数据流,其余的处理工作已经完成并正常工作,只有音频源是问题.

我需要做的是:

  1. 检查设备是否连接了USB麦克风.
  2. 了解该设备的特性(支持采样率,通道等)
  3. 录制音频数据

到目前为止我做了什么:

生成一个连接的USB设备列表 UsbConstants.USB_CLASS_AUDIO

private static final String ACTION_USB_PERMISSION = PACKAGE_NAME  + ".USB_PERMISSION";
private UsbManager mUsbManAndroid;
private Map<String, UsbDevice> mAndroidDeviceMap;
private PendingIntent mPermissionIntent;

private ArrayList<UsbDeviceListItem> getUSBDevicesList() {
    // Enumerate USB devices
    mAndroidDeviceMap = mUsbManAndroid.getDeviceList();
    ArrayList<UsbDeviceListItem> usbDevicesList = new ArrayList<>();

    for (String key : mAndroidDeviceMap.keySet()) {
        UsbDevice device = mAndroidDeviceMap.get(key);

        // Check the device class
        if (device.getDeviceClass() == UsbConstants.USB_CLASS_AUDIO) {
            usbDevicesList.add(usbDeviceToListItem(key, device));
        } else if (device.getDeviceClass() == UsbConstants.USB_CLASS_PER_INTERFACE) {
            UsbInterface interface;
            for …
Run Code Online (Sandbox Code Playgroud)

audio usb android android-studio android-usb

5
推荐指数
0
解决办法
1399
查看次数

如何检查otg支持选项是否已启用

目前,我们的应用程序之一需要外部设备连接。
因此,我想知道如何以编程方式启用或不检查设置中的OTG支持选项。

这个问题可能解释了是否支持OTG,但我正在专门寻找设置选项,但是即使在OTG不支持的设备上,api也会返回True。这样我就可以继续检查是否启用了otg。
我也在寻找它的解决方案,因为忽略此项时,由于我们忽略了执行检查,因此该应用程序崩溃了,表明找不到.SO文件。一会儿,我们最终显示消息“请确保在设置中启用了OTG支持”。
我想念什么吗?

android usb-otg android-usb

5
推荐指数
0
解决办法
356
查看次数

Android USB主机api和USB存储

我正在尝试使用android主机api进行USB存储。我对此有很多怀疑。

  1. 使用主机api可以实现所有功能。我想查看USB的内容,如果可能的话,请查看正常的文件操作。我没有找到关于此的任何文档帮助。

  2. 我可以使用UsbDeviceConnection类API声明ClaimInterface,但是我无法理解bulkTransfer的工作原理,因此,如果有人可以指导我或提供一些参考,我将自己尝试一下。

我也尝试阅读USB规范,我了解bulkTransfer如何在USB级别上工作,但无法关联使用bulkTransfer而不是File Descriptor使用UsbEndpoint进行android / java文件操作的方式。

提前致谢 !!

android android-usb

4
推荐指数
1
解决办法
2502
查看次数

连接 OTG 设备时调用的 Activity onCreate()

我正在开发一个使用 OTG USB 设备的应用程序。

我使用的设备是一个 USB 条形码扫描仪,它被 android 检测为键盘。

但是我检测到每次插入或拔出OTG设备时,都会通过调用Activity onCreate()方法重新启动App。

这给我带来了很多问题,因为我无法检测为什么调用 onCreate() 方法。

当 otg 设备插入/拔出时,是否有任何 Intent 或任何可以被触发和被捕获的东西?

提前致谢。

android usb-otg android-usb

3
推荐指数
1
解决办法
1568
查看次数

在 Android Kiosk 应用程序上显示 USB 权限对话框?

所以我有一个使用 startLockTask 命令固定到设备的应用程序,它有几个限制,因此用户无法逃离应用程序或更改设备的设置。

但是,用户应该能够通过 USB 将文件从设备传输到计算机,但是当设备连接到“新”PC 时,USB 权限对话框:由于 LockTask 模式,不会显示允许访问设备数据.

有没有办法在我的应用程序前面打开那个对话框?

android kiosk-mode mtp android-permissions android-usb

3
推荐指数
1
解决办法
909
查看次数

绕过 Android 9 上的 android usb 主机权限确认对话框

在 Android 9 之前,我可以通过使用 root、系统化我的应用程序和使用下一个 USB 类来绕过 android usb 主机权限确认对话框/sf/answers/1076468291/ /sf/answers/1377729461/

但它不适用于最新的 Android 版本 - 9

它抛出 java.lang.NoSuchMethodError: No interface method grantDevicePermission(Landroid/hardware/usb/UsbDevice;I)V in class Landroid/hardware/usb/IUsbManager; or its super classes (declaration of 'android.hardware.usb.IUsbManager' appears in /system/framework/framework.jar)

fun setUsbPermissionRoot(device: UsbDevice) : Boolean {
    if (BuildConfig.DEBUG) Log.i(TAG, "trying set permission")
    try {
        val pm = App.context.packageManager
        val ai = pm.getApplicationInfo(App.context.packageName, 0)
        ai?.let {
            val b = ServiceManager.getService(Context.USB_SERVICE)
            val service = IUsbManager.Stub.asInterface(b)
            service.grantDevicePermission(device, it.uid)
            try {
                service.setDevicePackage(device, App.context.packageName, it.uid)
            } catch (e: …
Run Code Online (Sandbox Code Playgroud)

usb android root android-usb

3
推荐指数
1
解决办法
2374
查看次数

升级到Lollipop后,Adb未检测到设备(Sony Xperia Z3)

就在昨天,我的adb工作正常,我正在平稳地开发我的应用程序...今天我将我的xperia z3更新为棒棒糖(从索尼自动更新)......并且adb停止检测设备(在mac os yosemite上).

到目前为止我检查的内容:1)我安装了最新版本的android sdk 2)我尝试了adb kill-server和adb start-server 3)我在设备上启用了双重检查开发者模式4)我仔细检查了USB连接是在大容量存储模式下

什么都行不通!请帮忙.

usb android adb android-usb android-5.0-lollipop

2
推荐指数
1
解决办法
4296
查看次数

连接 USB 条码扫描仪时屏幕键盘不工作

我正在开发一个库存管理应用程序,并希望使用 kitkat 平板电脑作为最终用户设备。我使用 USB 条形码阅读器,效果很好。

我的问题是,一旦插入条形码读取器,它就会被识别为真正的键盘,并且我无法再访问虚拟键盘。这对我来说是一个大问题,因为我只使用条形码阅读器来读取条形码,并且需要旁边的软键盘......

但是当我使用棉花糖时,条形码阅读器和虚拟键盘就可以正常工作了。但奇巧和棒棒糖却不能正常工作。

有什么办法可以同时启用虚拟键盘和真实键盘吗?我真的需要这方面的帮助......

谢谢 !

java android android-softkeyboard android-usb

0
推荐指数
1
解决办法
3322
查看次数

Android 外部指纹 USB 在 USB 权限上始终返回 false

Android 10我在&上使用 Futronic 指纹 USB 设备时遇到问题11。代码

intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)
Run Code Online (Sandbox Code Playgroud)

当我按权限对话框上的“确定”按钮时,总是返回 false。我有一台旧的 Android 5 设备,运行正常。

这是来自他们的 SDK 的代码(UsbDeviceDataExchangeImpl.java),作为 Android Studio 的模块包含在内

intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)
Run Code Online (Sandbox Code Playgroud)

Android 10外部11USB 设备是否有任何额外的权限设置?

谢谢。

android fingerprint broadcastreceiver android-usb

0
推荐指数
1
解决办法
597
查看次数