前一段时间触摸屏校准应用,由于屏幕一直不准确,根本无法使用,总想找一种在命令行启动app的方法,使用am总是不成功,今天无意中看到一个国外的贴子,原来是am的参数搞错了,现记录如下:
如activity描述为:
<activity
android:name=".TestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.AM_TEST" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
则在adb shell 或者 minicom中输入的命令为:
# am start -a android.intent.action.MAIN -n com.sziauto.test/com.sziauto.test.TestActivity
或者
# am start -a android.intent.action.AM_TEST -n com.sziauto.test/com.sziauto.test.TestActivity
即可启动对应的activity
启动时添加参数可用-e选项,如添加string类型的参数可用一下命令:
# am start -a android.intent.action.MAIN --es extra_key test_value -n com.sziauto.test/com.sziauto.test.TestActivity
或者
# am start -a android.intent.action.MAIN -s extra_key test_value -n com.sziauto.test/com.sziauto.test.TestActivity
在activity中即可使用 this.getIntent().getStringExtra("extra_key") 来获取输入key为extra_key的值,即test_value
其他的int,long,bool类型的参数和string类型的相似,可以参看am的命令,查找对应的选项标签