adb shell 无法启动

  1. Now execute:
    chmod a+r /etc/udev/rules.d/51-android.rules
只要按照说明在/etc/udev/rules.d/目录下创建51-android.rules,把其中的0bb4修改为相应的USB,供应商ID信息即可。
比如我的手机是motorola,idVender是
22b8
那么这一行就是
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
不过,你可以写多行,以使用各种设备。比如我就写了所有的,我的文件如下:
#Acer      0502
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
#Dell     413c
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
#Foxconn     0489
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
#Garmin-Asus     091E
SUBSYSTEM=="usb", SYSFS{idVendor}=="091e", MODE="0666"
#HTC     0bb4
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
#Huawei     12d1
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
#Kyocera     0482
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"
#LG     1004
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
#Motorola     22b8
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
#Nvidia     0955
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"
#Pantech     10A9
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666"
#Samsung     04e8
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
#Sharp     04dd
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
#Sony Ericsson     0fce
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
#ZTE     19D2
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"

但是我要说明的是,根据上面的这些ID,并不能包括所有的,我手上就有一台设备的USB ID都不在上述之列。
你可以很方便的使用lsusb命令查看自己的USB ID
shily@hh-desktop:~$ lsusb
Bus 002 Device 003: ID 413c:2003 Dell Computer Corp. Keyboard
Bus 002 Device 002: ID 0461:4d22 Primax Electronics, Ltd
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 010: ID 18a1:0002
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
找到上面的id是18a1,在文件中添加我的设备就可以了。
SUBSYSTEM=="usb", SYSFS{idVendor}=="18a1", MODE="0666"

修改/etc/udev/rules.d/51-android.rules不需要重启Linux机器,重新插拔一下设备就可以了。再次运行adb devices就可以看到你的设备已经连接
shily@hh-desktop:~$ adb devices
List of devices attached
0403502001011000    device
而在此之前,你看到的是
shily@hh-desktop:~$ adb devices
List of devices attached
????????????    no permissions

2010-07-28 重要更新
如果你看得到系统启动时的log,也许你会注意下面的这个警告:
udevd : SYSFS{}= will be removed in a future udev version, please use ATTR instead.

直接使用ATTR替换上面的SYSFS即可:
例如:
#ZTE     19D2
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"

变成

#ZTE     19D2
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
<think>好的,我现在需要解决用户的问题:如何通过adb shell命令启动Android Activity。用户希望得到具体的示例教程。首先,我得回忆一下之前用户提供的引用内容,看看有没有相关的信息。 根据引用[1],里面提到启动activity的命令格式是`am start -n {包名}/{包名}.{活动名}`,并且举了浏览器的例子。这应该是一个基本的结构。引用[3]也提到了一些应用可能有多个activity,所以需要正确指定包名和activity名称。所以首先,我需要确认用户是否知道如何获取包名和activity名,如果不知道的话,可能需要告诉用户如何获取这些信息,比如使用`adb shell dumpsys package`或者检查AndroidManifest.xml文件。 然后,用户可能需要具体的步骤,所以应该分步骤说明,比如第一步查找包名和activity名,第二步构造命令,第三步执行命令。同时,示例很重要,比如启动浏览器、设置或拨号应用的例子,这样用户可以直接参考。 另外,用户可能需要知道其他参数,比如隐式启动或者传递数据,这时候需要补充`-a`和`-d`这样的参数用法,如启动浏览器打开特定网页。同时,注意权限问题,如果activity需要特定权限,可能需要root权限,但普通activity一般不需要。 可能还需要提醒用户常见的错误,比如包名或activity名不正确时的提示,或者如何解决“权限被拒绝”的问题。此外,用户可能想知道如何验证是否成功启动,可能需要查看logcat日志或者观察设备屏幕的变化。 最后,生成相关问题的时候,要考虑用户可能的后续问题,比如如何启动Service或Broadcast,如何调试启动失败的情况,或者如何自动化这些命令。这样能帮助用户更全面地掌握adb shell命令的使用。</think>### 通过 adb shell 命令启动 Android Activity 的详细教程 #### 一、基础命令格式 通过 `adb shell am start` 命令启动 Activity 的标准语法为: $$ am \ start \ -n \ {包名}/{完整Activity类名} $$ 其中 `包名` 和 `Activity类名` 需从应用的 `AndroidManifest.xml` 中获取[^3]。 #### 二、具体操作步骤 1. **获取包名和Activity名称** - 通过以下命令列出设备已安装包名: ```bash adb shell pm list packages ``` - 使用 `dumpsys` 查看具体Activity信息: ```bash adb shell dumpsys package {包名} | grep "Activity" ``` 2. **标准启动示例** - 启动浏览器: ```bash adb shell am start -n com.android.browser/com.android.browser.BrowserActivity ``` - 启动系统设置: ```bash adb shell am start -n com.android.settings/com.android.settings.Settings ``` 3. **带隐式Intent的启动** - 打开指定网页: ```bash adb shell am start -a android.intent.action.VIEW -d "http://www.example.com" ``` - 拨打电话界面(需替换号码): ```bash adb shell am start -a android.intent.action.DIAL -d tel:123456789 ``` #### 三、参数说明表 | 参数 | 作用 | |------|------| | `-n` | 显式指定组件名称 | | `-a` | 指定Action类型 | | `-d` | 携带Data数据 | | `-f` | 添加Intent Flags | #### 四、常见错误处理 - **权限拒绝**:部分系统级Activity需要 `root` 权限,建议使用 `adb root` 提权 - **组件不存在**:检查是否输入了正确的全限定类名(注意大小写) - **多用户设备**:添加 `--user 0` 参数指定主用户
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值