Linux配置Android设备USB访问权限

参考

Android Studio用户指南——在硬件设备上运行应用
手机开启调试模式,连接电脑,执行adb devices命令,如果没有usb设备访问权限,此时会显示:

$ adb devices
List of devices attached
01bf27deae6532f8        no permissions; see [http://developer.android.com/tools/device.html]

查看USB设备ID

通过lsusb命令查看USB设备ID:

$ lsusb
Bus 001 Device 073: ID 18d1:4ee7 Google Inc. 
Bus 001 Device 002: ID 046d:c31d Logitech, Inc. Media Keyboard K200
Bus 001 Device 003: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 003 Device 002: ID 8087:8008 Intel Corp. 
Bus 004 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我这里使用的是Google Nexus 5X手机,结合参考页面的USB 供应商 ID表和命令结果的描述可以确定,我的手机的USB设备ID是18d1:4ee7。

配置USB访问权限

以root权限创建文件:/etc/udev/rules.d/51-android.rules,按如下格式添加内容:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev" 

所以,我这里需要对应的添加一行Google的USB 供应商 ID:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

然后设置文件可读:

$ chmod a+r /etc/udev/rules.d/51-android.rules

此时重新插拔一下手机,再次运行adb devices查看

$ adb devices
List of devices attached
01bf27deae6532f8        unauthorized

状态是未授权,这时手机屏幕上应该就出现了确认允许这台电脑进行调试的对话框,确认授权后,就可以连接到手机了。

$ adb devices
List of devices attached
01bf27deae6532f8        device

$ adb shell
bullhead:/ $ 

附:USB 供应商 ID列表

公司USB 供应商 ID
Acer0502
ASUS0b05
Dell413c
Foxconn0489
Fujitsu04c5
FujitsuToshiba 04c5
Garmin-Asus091e
Google18d1
Haier201E
Hisense109b
HP03f0
HTC0bb4
Huawei12d1
Intel8087
K-Touch24e3
KT Tech2116
Kyocera0482
Lenovo17ef
LG1004
Motorola22b8
MTK0e8d
NEC0409
Nook2080
Nvidia0955
OTGV2257
Pantech10a9
Pegatron1d4d
Philips0471
PMC-Sierra04da
Qualcomm05c6
SK Telesys1f53
Samsung04e8
Sharp04dd
Sony054c
Sony Ericsson0fce
Sony Mobile Communications0fce
Teleepoch2340
Toshiba0930
ZTE19d2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio是一款用于开发Android应用程序的集成开发环境(IDE),而串口是用于通过串行通信进行数据传输的接口。在Android Studio中,如果需要在Android设备上使用串口进行数据传输,可以遵循以下步骤。 首先,需要在Android设备上连接一个支持串口通信的硬件模块,例如串口转USB模块。确保硬件模块与Android设备之间的物理连接正常。 其次,在Android Studio中,首先需要在项目的build.gradle文件中添加串口通信库的依赖项。可以在Android Studio中的Project窗口中找到该文件,并在其中的dependencies部分添加合适的依赖项。 然后,需要在Android应用程序的代码中添加串口通信的相关代码。可以通过使用Java的串口通信API来实现串口的打开、关闭和读写等操作。根据具体需求,可以编写适当的代码来处理串口通信的数据传输和解析等操作。 最后,在Android设备上运行该应用程序,并确保设备已连接到合适的串口。可以使用Android Studio提供的调试工具来检查应用程序代码的执行情况,并通过打印日志或使用GUI界面来显示串口通信的数据传输结果。 总之,通过Android Studio可以方便地进行串口通信的开发。只需添加相关的依赖项和编写适当的代码,就可以实现Android设备与串口硬件模块之间的数据传输。 ### 回答2: Android Studio是一种集成开发环境(IDE),用于开发Android应用程序。它支持各种功能和工具,其中一个常见需求是与串口通信。 在Android Studio中实现串口通信的方式有多种。一种常见的方法是使用Java的串口通信库,例如RXTX或JSerialComm。这些库提供了与串口进行数据交换的功能。需要在项目的Gradle文件中添加相应的依赖项,并在代码中使用库的API来实现串口通信。 另一种方法是使用Linux系统的特性来访问串口设备Android是基于Linux内核的操作系统,因此可以通过访问Linux系统的文件系统来读写串口设备。通过操作文件系统的特殊文件来控制串口设备,例如/dev/ttyS0。 不管使用哪种方法,首先需要获取应用程序的正确权限。通过在AndroidManifest.xml文件中添加相应的权限声明来实现,例如android.permission.WRITE_EXTERNAL_STORAGE和android.permission.READ_EXTERNAL_STORAGE。 然后,需要在代码中打开串口设备,并进行数据的读、写操作。可以使用Java的IO流或者ByteBuffer类来进行数据的处理和发送。可以使用RxJava对串口数据进行观察和处理,以便实现更灵活的串口通信功能。 需要注意的是,对于串口通信,还需要了解串口的配置参数,例如波特率、数据位、停止位和校验位等。必须在代码中设置这些参数,以确保与外部设备正确通信。 总之,使用Android Studio实现串口通信需要掌握串口通信库或者Linux文件系统访问的知识。需要正确配置权限并实现与串口设备的数据读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值