閱讀577 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android Intent 調用其他應用 setComponent

https://blog.csdn.net/muojie/article/details/7932024

隻要利用adb logcat ,再搭配使用setComponet(),就可以輕易的唿叫第三方程式(不在自己的application內)。
詳細用法參考原文:
https://developer.android.com/reference/android/content/Intent.html#setComponent%28android.content.ComponentName%29

比如我自己的程式想執行Android裡麵的Settings,先用adb logcat看係統是如何唿叫Settings的

I/ActivityManager(   60): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings }
I/ActivityManager(   60): Displayed activity com.android.settings/.Settings: 1205 ms (total 1205 ms)

隻要有這個cmp就可以唿叫Settings了

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent i = new Intent();
        ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.Settings");
        i.setComponent(comp);

        startActivity(i);    
    }
}
另外有些程式要被執行,Intent還要多加搭配Intent.setData()或者是Intent.setAction()等方式。比如:想要開啟Browser,而且是開啟tw.yahoo.com的網頁,程式碼如下:
        Intent i = new Intent();
        ComponentName comp = new ComponentName("com.android.browser", "com.android.browser.BrowserActivity");
        i.setComponent(comp);
        Uri uri = Uri.parse("https://tw.yahoo.com");
        i.setData(uri);

        startActivity(i);

參考:

android使用setComponent啟動另外一個程序


最後更新:2017-04-03 14:54:36

  上一篇:go 劍指Offer之和為S的連續正數序列
  下一篇:go 史上最全的android學習資料