由於需要反覆啟動某隻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也是用同樣的參數喔~
Place your comment