Bash ADB 使用变量调用应用程序

Bash ADB Calling an app with a variable

我有一个应用程序,当它被调用时,它会将调用时使用的字符串输出到 toast 通知中。

像这样:

am start -a android.intent.action.MAIN -e message "Example  String" -n com.rja.utility/.ShowToast

我想创建一个 for 循环,它会循环 .txt 文件中的行并使用上述方法输出它们,如下所示:

for i in `cat /somedirectory/ToastQueue.txt`; do
    am start -a android.intent.action.MAIN -e message "$i" -n com.rja.utility/.ShowToast > dev/null
done

但显然这不起作用,它抱怨我有额外的参数。

所以我的问题是,我怎样才能完成这项工作?我无法修改应用程序,所以这一切都应该通过 shell 或 ADB

完成

所以我成功了:

for i in `cat /somedirectory/ToastQueue.txt`; do
    i="\"$i\""
    eval "am start -a android.intent.action.MAIN -e message $i -n com.rja.utility/.ShowToast > dev/null"
done

如果消息中有空格,则必须引用该消息,但您不能在 eval 中引用它,否则会退出它,因此我们在将其传递给应用程序之前引用它。