上午看了看一個帖子,談論到android的應用程序調用另一個應用程序的方法。
我的第一反應就是使用aidl進程間通信,aidl通信可以參考博客 http://blog.csdn.net/stonecao/article/details/6425019 ,可能很多人都有和我一樣的想法。但後來又想了想,我們不是經常調用系統照相機、搜索這些功能麼,這個也屬於android的應用程序調用另一個應用程序的方法吧,只是這個程序屬於系統服務。本想自己寫個簡單的例子,但網上已有現成的,參考http://www.eoeandroid.com/forum.php?mod=viewthread&tid=69600這個帖子。
另一個帖子http://www.apkbus.com/android-43480-1-1.html也有介紹,附上另一個網友的經典回答
通過PackageManager可以得到PackageInfo,通過PackageInfo就可以得到你手機上安裝的應用的包名(這個很簡單,網上有的是,不贅述)。關鍵是下一步,代碼如下(也是a應用中Button的onclick中的代碼):
PackageManager packageManager = Start_RemoveSoftActivity.this.getPackageManager();Intent intent=new Intent();
try {
intent =packageManager.getLaunchIntentForPackage("要調用應用的包名");
} catch (NameNotFoundException e) {
Log.i(TAG, e.toString());
}
startActivity(intent);
題外語:
這段時間事情太忙了,很多時候都是屬於拿來主義,拿來就用,沒做好好整理,感謝那些網上提供分享的程序員們,正是有了他們的分享,讓我多了很多見識。真心覺得github,googcode,開源中國 不錯,感謝開源精神。