标签: adb-shell

有没有办法从联系人列表中删除联系人?

我的应用程序在安装应用程序时需要备用联系人.当我运行安装和注册应用程序时,默认情况下新设备中没有联系人.

我找到了一个adb命令来在联系人列表中添加联系人

adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Alternate Contact' -e phone 72xxxxxxxx

但现在我无法在执行后删除相同的联系人.尝试使用下一个命令的多个参数组合,但它不起作用. adb shell am start -a android.intent.action.DELETE -t vnd.android.cursor.dir/contact -e name 'Donald Duck' -e phone 72xxxxxxxx

如果有删除联系人的adb命令,请分享.

编辑:adb shell pm clear com.android.providers.contacts命令将清除联系人列表中的所有联系人.

android adb adb-shell

12
推荐指数
2
解决办法
2545
查看次数

带空格的 adb shell 输入文本

如何使用“某些文本”之类的空格发送文本adb shell input text

找到以下解决方案

adb shell input text "some%stext"工作正常。但是有什么简单的方法可以用 %s 替换空间?

例子:

$ adb shell input text "some text"
Error: Invalid arguments for command: text
Usage: input [<source>] <command> [<arg>...]

The sources are: 
      keyboard
      mouse
      joystick
      touchnavigation
      touchpad
      trackball
      dpad
      stylus
      gamepad
      touchscreen

The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> …
Run Code Online (Sandbox Code Playgroud)

shell android adb-shell

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

找不到ADB screenrecord命令

我无法跑步 adb shell screenrecord /sdcard/my.mp4

我正在尝试运行此命令的设备规格:

  • 荣誉5C
  • Android 6.0

每当我运行screenrecord命令时,它都会显示找不到命令。

D:\adb>adb shell screenrecord
/systerm/bin/sh:screenrecord not found
Run Code Online (Sandbox Code Playgroud)

我也有内置的屏幕记录应用程序,这是我的问题的原因吗?除了屏幕截图,还有其他捕获屏幕的方法吗?或者我可以使用内置屏幕录制应用程序吗?任何建议或想法都是可取的。

谢谢,

android adb adb-shell

7
推荐指数
2
解决办法
4814
查看次数

如何从adb shell启用"Show Touches"开发人员选项?

我需要为屏幕记录显示触摸以显示错误,但不想导航到设置中,因为担心我会丢失我的位置并且错误将消失.

任何人都知道是否可以从adb shell启用此功能,如果是,我输入的内容是什么?

adb touches screen-recording adb-shell

7
推荐指数
1
解决办法
2001
查看次数

ADB shell:如何获取将接收BOOT_COMPLETED Intent的BroadcastReceiver列表?

我正在调试一个应该在设备启动后自动启动的应用程序.为此我创建了一个BroadcastReceiver并将其添加到我的AndroidManifest.xml:

<receiver android:name=".receiver.StartupBroadcastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

这在大多数设备上始终有效.然而,在一台设备(MXQ Pro机顶盒)上,它只能在大部分时间工作.到目前为止,我还没有找到任何模式,当它工作时,它没有.

所以,我想找出哪些BroadcastReceivers实际上是当前在系统中注册的,以接收BOOT_COMPLETED Intent.

我玩了一下

  • pm:但这只告诉我哪些包想要收到Intent
  • dumpsys:但它的输出是压倒性的,我不知道该寻找什么

谢谢你的建议!

android adb android-intent dumpsys adb-shell

6
推荐指数
1
解决办法
6194
查看次数

android 模拟器从 emulator-5554 重命名为唯一字符串

所以在启动模拟器时,adb devices 给我

模拟器-5554 设备

所有花花公子直到这里。

我的设想是创建一个模拟器农场,其中包含在多个设备上产生的多个模拟器。为了将在机器 A 上运行的 emulator-5554 与在机器 B 上运行的 emulator-5554 区别开来,我想将 emulator-5554(s) 重命名为 machineA-emulator-5554 和 machineB-emulator-5554。四处搜索并没有给我带来太多帮助(因为大多数问题都与实际设备重命名有关)。以上有什么指点吗?

NP:我曾尝试使用随机字符串对 serialno 执行 setprop,然后检查它是否确实发生了变化(并且确实发生了变化)

root@generic_x86:/ # getprop persist.usb.serialno

76876987gg

奇怪地运行 adb devices 给了我一个状态

emulator-5554 离线

模拟器名称未更改,状态为脱机。我在这里错过了什么吗?

android adb android-emulator adb-shell

5
推荐指数
2
解决办法
2459
查看次数

`adb shell input` 返回没有注册任何输入的 `Killed` 响应

我正在尝试模拟我的小米 Mi Max 2 上的触摸。我尝试了monkeyrunner但失败了,所以我正在尝试 adb。但是,每个命令都是通过Killed响应返回的,并且没有按下触摸/键。这是什么意思?

在此处输入图片说明

android input touch adb adb-shell

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

adb 将文件从 /sdcard/ 复制到 /data/data/package 没有 root 权限

我将我的 android 设备连接到 PC 并通过 adb 连接。我想要做的是将文件从我的 PC 复制到我的应用程序 ( /data/data/com.example.app/databases)的内部存储中,而无需 root 或su. 我首先将文件从我的 PC 推送到/sdcard/我的 android 设备的文件夹中。

adb push database.sqlite /sdcard/
Run Code Online (Sandbox Code Playgroud)

然后我想将该文件复制到我的应用程序的内部存储中。我可以成功地作为我的应用程序包运行并查看内部存储。

adb shell
$ run-as com.example.app
$ ls databases
Run Code Online (Sandbox Code Playgroud)

这不会导致权限问题。/sdcard/如果我不使用run-as 没有问题,我也可以查看文件夹

adb shell
$ ls sdcard
Run Code Online (Sandbox Code Playgroud)

问题是,当我第一次使用时,run-as我无法访问 /sdcard/ 文件夹,而当我不使用时,run-as我无法访问内部存储文件夹。所以,如果我执行run-as然后执行这个:

cp /sdcard/database.sqlite /data/data/com.example.app/databases/
Run Code Online (Sandbox Code Playgroud)

我收到此权限被拒绝错误:

cp: /data/data/com.example.app/databases/database.sqlite: Permission denied
Run Code Online (Sandbox Code Playgroud)

我也试过 withh dd 但没有用:

dd if=/sdcard/database.sqlite of=/data/data/com.example.app/databases/
# output
dd: /sdcard/database.sqlite: Permission denied
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?我没有 root 访问权限,也没有超级用户 ( …

android adb adb-shell

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

停止缓冲 adb shell 输出

我在adbv1.0.39 中观察到了这种新行为。命令:

adb shell getevent -l
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

观察最后一行未完成

观察最后一行是不完整的。这发生在许多不同的设备上。相同的命令在adbv1.0.32 中无需缓冲即可工作。

如何adb shelladbv1.0.39 中停止输出缓冲?

adb adb-shell

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