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啟動另外一個程式