问题标签 [android-usb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
64 浏览

android - 您可以在 Android Studio 中的 Android Emulator 设备和 USB 连接的真实设备之间发送通知,以便与数据库进行演示吗?

我想制作一个有两个帐户和相互数据库的应用程序。我想实时从第一个帐户向第二个帐户发送通知。这可能吗?

0 投票
1 回答
425 浏览

java - 绕过-android-usb-host-permission-confirmation-dialog

当android用作主机时,我试图绕过android上的usb权限,我点击了这个链接,它提供了在Android 4.x上 绕过android usb主机权限确认对话框的方法

但是,这不适用于 Android 9.0。在查看了 AOSP 源代码后,IUsbManager 接口似乎有不少变化。我试图将添加的新方法存根,并且我还必须在此过程中为 android.hardware.usb 包下的另外两个类创建存根,命名为 UsbPort 和 UsbPortStatus。

这是我为 android 9.0 提供的代码,但它不起作用。当我调用grantDevicePermission 时,我不断收到NoSuchMethod 异常。ServiceManager.java 的代码与链接中的代码相同,因此我没有将其粘贴到此处。

帮助将不胜感激!

IUsbManager 接口:

UsbPort.java:

UsbPortStatus.java:

0 投票
1 回答
272 浏览

keyboard - 用于在 Android AIDE 应用程序上进行编码的物理 USB 键盘

我在智能手机设备上运行 Android 8.1 Oreo。

我想知道,我可以使用 USB 到 microUSB 适配器将这款KeyTronic USB 键盘安装到我的 Android 手机上吗?

我想用它代替 Android 上的默认 GBoard 软键盘,并用它在 AIDE 上编码。

我不知道是不是屏幕太小了,但我想试着躺着用键盘,头下垫个枕头让我靠在上面,键盘和智能手机粘在我弯曲的腿上。我认为这样我可以躺着写代码,而且可能不需要平板电脑。

谢谢。

0 投票
2 回答
2760 浏览

android - 作为设备所有者授予 USB 权限

设备所有者可以使用DevicePolicyManager.setPermissionGrantState()向第三方应用授予运行时权限,以避免用户提示。

但是设备所有者是否也有任何方法可以授予USB 权限,以便此应用无需用户提示即可访问插入的 USB 设备?

我尝试调用UsbManager.grantPermission()(通过反射),但它引发了 a SecurityException,因为它需要MANAGE_USB仅授予系统应用程序(而不是设备所有者,显然)的权限。

注意:我正在寻找一种适用于非 root 和非自定义 Android 系统的解决方案,设备所有者应用程序是使用Android Enterprise 配置方法设置的。

0 投票
0 回答
110 浏览

android - 如何访问可移动存储设备,例如 micro SD 卡和 USB 驱动器?

我在 Google Play 上有一个备份恢复应用程序。目前,它允许在 Environment.getExternalStorageDirectory() 返回的存储上备份内容。

但是,我想让用户选择一个备份目录,无论是在 SD 卡、内部存储还是 USB 驱动器上。然后,我想将其路径保存在共享首选项中,并在用户创建新备份时将备份保存在其中。

我如何获得所有存储的列表并请求一次性权限以在我想要的时候写入它们?

0 投票
1 回答
2858 浏览

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

在 Android 9 之前,我可以通过使用 root绕过 android usb 主机权限确认对话框,系统化我的应用程序并使用下一个 usb 类https://stackoverflow.com/a/15378118/7767664 https://stackoverflow.com/a/19681849/7767664

但它不适用于最新的 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)

有没有办法让它在Android 9上运行?

0 投票
0 回答
87 浏览

android - Android USB 库中的 hid_get_feature_report 模拟

hid_get_feature_reportAndroid USB 库中的类比是什么?

我需要从 Android 上的 USB 中继设备获取中继状态。

我在 C 上找到了示例(适用于 Linux/Windows):https ://github.com/darrylb123/usbrelay/blob/master/libusbrelay.c

在 Android 上它只返回一个端点Log.i(TAG, "endpointCount ${usbInterface.endpointCount}

0 投票
0 回答
911 浏览

android-10.0 - 连接USB时使用意图过滤器启动活动时的Android 10堆叠USB权限

我的设置

  • Pixel 3/Android 10(但在三星 Galaxy S9/Android 9 上也有同样的问题)
  • 应用面向 API 29 (Android 10)
  • USB 设备

在 Android 10 上,权限模型发生了变化,这意味着读取 USB 设备的序列号需要明确的用户权限,请参阅:https ://developer.android.com/preview/privacy/data-identifiers#usb-串行用户权限

因此,当收到连接 USB 设备的意图时,我会自动请求读取序列号的权限(导致权限对话框:“允许 X 访问虚拟 COM 端口?”)。

权限对话框 1

为了在连接适当的 USB 设备时也能够启动应用程序,以前也可以这样做(AndroidManifest.xml):

...这也会在连接新的 USB 设备时导致权限请求对话框(“打开 X 以处理 Com 端口?”)。

权限对话框 #2

但是,如前所述,应用程序还必须请求读取序列号的权限,这会导致第二个权限对话框。

这两个对话框现在堆叠在一起,如果同意第一个对话框(“打开 X 以处理虚拟 COM 端口?”),第二个对话框(“允许 X 访问 COM 端口?”)将自动关闭,导致功能中断。

关于如何处理这两个权限的任何建议?

0 投票
1 回答
244 浏览

android - 即使在 android studio 中开启了 USB 调试,模拟器也未在连接的 USB 设备中列出

我在 android studio 的模拟器中启用了开发者选项和 USB 调试模式,它运行良好;它列在我连接的 USB 设备中,我可以选择它来运行我的应用程序。但是一旦我从命令行中终止了该进程sudo kill -9(因为我的电脑死机了,我别无选择),我的 USB 连接设备列表是空的。

我试过的:

  • 我检查了开发人员选项,USB调试模式仍然启用。
  • 我试图从 android studio 内部重新启动 AVD 管理器;连接的 USB 设备列表中仍然没有任何内容。
  • 我试图重新启动android studio;还是一样。
  • 我试图从命令行重新启动 abdsudo abd kill-serversudo abd start-server; 没有改变。
  • 我什至重新启动了我的电脑;列表中仍然没有显示任何内容。

笔记:

  1. 我以root权限运行android studio;所以我认为它可以通过 root 访问执行所需的操作。
  2. 我从命令行检查了连接的 USB 设备,sudo adb devices -l但我的模拟器也没有在那里列出。
0 投票
0 回答
520 浏览

android-bluetooth - Android x86 禁用 USB 设备或驱动程序或选择蓝牙设备?

我在 Parallels Desktop 上运行 Android x86,而他们的虚拟蓝牙设备根本无法工作。我想使用我的 Android 兼容 USB 加密狗 (CSR8510)。我可以通过在设备管理器中禁用虚拟设备来使用 Windows 10 执行此操作,但我在 Android 中看不到等效设置。

我知道 USB 加密狗通过运行 USB 主机控制器应用程序连接到 Android x86。它显示为 0001:0a12 CSR8510 A10

有什么建议么?