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 中引用它,否则会退出它,因此我们在将其传递给应用程序之前引用它。
我有一个应用程序,当它被调用时,它会将调用时使用的字符串输出到 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 中引用它,否则会退出它,因此我们在将其传递给应用程序之前引用它。