android - 使用子进程执行ADB命令

标签 android python call subprocess adb

我正在使用 adb 发送短信。以下命令 ./adb shell am start -a android.intent.action.SENDTO -d sms:12345 --es sms_body "the body"--ez exit_on_sent true ,虽然在 bash 中输入并执行,但它是工作,但我的 python 脚本似乎只调用 ./adb:

    ADB = './adb'
    def callSMScmd(msg, num):
        adbArgs = ('shell am start -a '
                +'android.intent.action.SENDTO -d sms:'+str(num)+' --es'
                +'sms_body "'+msg+'" --ez exit_on_sent true')
        call([ADB, adbArgs])

正确的返回是 Starting: Intent { act=android.intent.action.SENDTO dat=sms:12345 (has extras) } 不幸的是,这个脚本列出了 adb 版本和所有可用的选项;没有警告,没有错误。 在此先感谢您的帮助

最佳答案

使shell成为一个单独的参数:

call(['adb', 'shell', 'am start -a android.intent.action.SENDTO ...'])

关于android - 使用子进程执行ADB命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17942000/

相关文章:

android - 如何合并图库中每个图像的按钮?

java - 如何打开 webview 上的每个链接到 chrome 自定义选项卡?

python - 谷歌云发布订阅 : Not sending/receiving all messages from Cloud Functions

python - 如何通过 pip 安装 mysql-connector

python - 从 python subprocess.call 调用 rsync

python - 从 Python 调用 C 函数

android - 如何在android中通过Jsoup从instagram个人资料页面获取数据

python - 查找多个出现作为较大模式的一部分

c - 获取内存地址

android - 服务在 Activity 的 'death' 处崩溃