11
A
回答
22
主屏幕從Intent
ACTION_MAIN
開始,類別爲CATEGORY_HOME
(來自javadoc的Intent
)。這個意圖使用ResolveInfo
知道什麼應用程序將啓動。
這會給你的默認主頁的應用程序:
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
final ResolveInfo res = getPackageManager().resolveActivity(intent, 0);
if (res.activityInfo == null) {
// should not happen. A home is always installed, isn't it?
} else if ("android".equals(res.activityInfo.packageName)) {
// No default selected
} else {
// res.activityInfo.packageName and res.activityInfo.name gives you the default app
}
現在,如果你想知道一個正在運行的,它需要更多的時間,因爲ActivityManager緩慢:
// instead of the best, query all activities that match:
final List<ResolveInfo> list = ((PackageManager)getPackageManager()).queryIntentActivities(intent, 0);
// TODO from there, use ActivityManager to know which one is running and is in the list
3
private String findLauncherPackageName(){
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
final ResolveInfo res = getPackageManager().resolveActivity(intent, 0);
Log.e("ANDRO_ASYNC", String.format("findLauncherPackageName()%s",res.activityInfo.packageName));
return res.activityInfo.packageName;
}
+1
此代碼並不總是返回活動啓動器,它將返回默認啓動器,如果有的話。 – THelper
0
只有當標記爲默認時,您才能檢查活動啓動器的標題。 otherwwise你會得到類似結果
com.android.internal.app.ResolverActivity
相關問題
- 1. 在哪個線程中通過Notification啓動的IntentService運行?
- 2. 在啓動時運行應用程序
- 3. 在啓動時運行程序Ubuntu
- 4. 運行程序在Windows啓動時
- 5. 在啓動時運行應用程序
- 6. 在啓動時運行程序
- 7. FIREMONKEY - 運行啓動程序啓動應用程序(OSX)
- 8. 停止剛啓動的正在運行的應用程序
- 9. 從正在運行的後臺服務啓動應用程序
- 10. eclipse:android模擬器正在運行,但程序未啓動
- 11. 從未啓動到正在運行的線程的時序
- 12. 啓動時自動運行程序
- 13. 啓動守護程序可以運行哪種文件?
- 14. 啓動遠程程序時出錯:正在啓動或暫停正在進行
- 15. 在腳本啓動時自動運行一個程序
- 16. Linux - 在系統啓動時自動運行哪些進程
- 17. 確定哪個node.js程序正在運行
- 18. 看哪個應用程序正在運行
- 19. 如何判斷openoffice的哪個應用程序正在運行?
- 20. 哪個JIT正在運行我的應用程序
- 21. 應用程序正在啓動,沒有行正在執行
- 22. 啓動另一個正在運行的線程
- 23. 當另一個prog正在運行時阻止程序啓動(Windows)
- 24. 如何從正在運行的(uiviewcontroller)應用程序啓動一個cocos2d場景
- 25. Linux運行級別1:啓動程序
- 26. 如何運行程序和啓動shell
- 27. 啓動時運行c程序
- 28. 啓動時運行的Ubuntu程序
- 29. 使用initramfs啓動時運行程序
- 30. 在spring-mvc應用程序啓動時運行一個類
需要提及的是,如果沒有默認的發射器和一個以上的安裝,那麼你會得到像'com.android.internal.app.ResolverActivity'。 –