天天看點

Android Intent 調用其他應用 setComponent

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

隻要利用adb logcat ,再搭配使用setcomponet(),就可以輕易的呼叫第三方程式(不在自己的application內)。

詳細用法參考原文:

http://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的網頁,程式碼如下:

        componentname comp = new componentname("com.android.browser", "com.android.browser.browseractivity");

        uri uri = uri.parse("http://tw.yahoo.com");

        i.setdata(uri);

        startactivity(i);

參考:

android使用setcomponent啟動另外一個程式

繼續閱讀