韌館-LearnHouse

[Android]透過am start並加入參數啟動特定app

由於需要反覆啟動某隻app做一些事情後再關閉,如果用程式來啟動寫法如下,但這樣就會是建構在自己寫的app之上

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.xxxx.com/watch/81721411"));
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.setPackage("com.xxxx.yyyy");
startActivity(intent);


若要改成adb shell的方式則可透過如下方式做轉換

[-a <action>]
[-d ]
[-t <mime_type>]
[-c <category> [-c <category>] ...]
[-e|--es <extra_key> <extra_string_value> ...]
[--ez <extra_key> <extra_boolean_value> ...]
[-e|--ei <extra_key> <extra_int_value> ...]
[-n <component>]
[-f <flags>] [<uri>]

因此上述程式就可以轉換成

am start -a android.intent.action.VIEW -d "http://www.xxxx.com/watch/81721411" -f 0x00000020 -n com.xxxx.yyyy/.MainActivity

其中-f 0x00000020是根據FLAG_INCLUDE_STOPPED_PACKAGES在Android developer的16進制值。
而除了startActivity,adb shell am broadcast也是用同樣的參數喔~

2024年5 月 posted by admin in 程式&軟體 and have No Comments

Place your comment

Please fill your data and comment below.
名稱:
信箱:
網站:
您的評論: