使用来自 adb 的参数启动 Android APK
Start Android APK with args from adb
我正在寻找使用 args 启动我的 APK 的方法。
首先,如何在 OnCreate
方法中获取参数?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get args1, get args2...
}
然后使用 adb,我如何 运行 我的应用程序使用这些参数?我只看到这样的例子:
adb shell am start -S -D com.example.apk/android.app.MainActivity --es args '"-name MYNAME -email test@gmail.com"'
First, How can I get args in OnCreate method?
根据您描述的条件,这是不可能的。
Then with adb, How can I run my application with those args?
根据您描述的条件,这是不可能的。
您可以做的——以及adb
示例向您展示的——是供应Intent
extras:
adb shell am start -S -D com.example.apk/android.app.MainActivity --es args '"-name MYNAME -email test@gmail.com"'
这不是使用 Intent
额外功能的特别好方法,但让我们从它开始吧。
在这里,您要传递一个名为 args
的额外字符串,其值为 "-name MYNAME -email test@gmail.com"
.
在 activity 的 onCreate()
中,您可以调用 getIntent().getStringExtra("args")
来检索该字符串:
String args = getIntent().getStringExtra("args");
现在,args
变量将保持 -name MYNAME -email test@gmail.com
。
更简单、更清晰的 adb shell am start
命令是:
adb shell am start -S -D com.example.apk/android.app.MainActivity --es name MYNAME --es email test@gmail.com
现在您要传递两个额外的字符串,name
和 email
。然后您可以单独检索每个值:
String name = getIntent().getStringExtra("name");
String email = getIntent().getStringExtra("email");
这个答案对我不起作用,因为 -S(force stop) -D(debugging) 不足以发送额外的值,您应该添加 -n(Component) 以使用 -e[=11 发送额外的值=]
这里是发送多个键值的示例
adb shell am start -n com.example.jk.checkwifi/.MainActivity -e "imei" $myimei -e "ip" $IP
我正在寻找使用 args 启动我的 APK 的方法。
首先,如何在 OnCreate
方法中获取参数?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get args1, get args2...
}
然后使用 adb,我如何 运行 我的应用程序使用这些参数?我只看到这样的例子:
adb shell am start -S -D com.example.apk/android.app.MainActivity --es args '"-name MYNAME -email test@gmail.com"'
First, How can I get args in OnCreate method?
根据您描述的条件,这是不可能的。
Then with adb, How can I run my application with those args?
根据您描述的条件,这是不可能的。
您可以做的——以及adb
示例向您展示的——是供应Intent
extras:
adb shell am start -S -D com.example.apk/android.app.MainActivity --es args '"-name MYNAME -email test@gmail.com"'
这不是使用 Intent
额外功能的特别好方法,但让我们从它开始吧。
在这里,您要传递一个名为 args
的额外字符串,其值为 "-name MYNAME -email test@gmail.com"
.
在 activity 的 onCreate()
中,您可以调用 getIntent().getStringExtra("args")
来检索该字符串:
String args = getIntent().getStringExtra("args");
现在,args
变量将保持 -name MYNAME -email test@gmail.com
。
更简单、更清晰的 adb shell am start
命令是:
adb shell am start -S -D com.example.apk/android.app.MainActivity --es name MYNAME --es email test@gmail.com
现在您要传递两个额外的字符串,name
和 email
。然后您可以单独检索每个值:
String name = getIntent().getStringExtra("name");
String email = getIntent().getStringExtra("email");
这个答案对我不起作用,因为 -S(force stop) -D(debugging) 不足以发送额外的值,您应该添加 -n(Component) 以使用 -e[=11 发送额外的值=]
这里是发送多个键值的示例
adb shell am start -n com.example.jk.checkwifi/.MainActivity -e "imei" $myimei -e "ip" $IP