2013-10-24 64 views
0

如何檢測家庭活動是使用包信息啓動/顯示的。 像我們這個代碼得到包的名字:如何檢測家庭活動在android中啓動?

ActivityManager.RunningTaskInfo localRunningTaskInfo = (ActivityManager.RunningTaskInfo)((ActivityManager)context.getSystemService("activity")).getRunningTasks(1).get(0); 
String str1 = localRunningTaskInfo.topActivity.getPackageName(); 
String str2 = localRunningTaskInfo.topActivity.getClassName(); 

有了這個,我們得到的所有應用程序包名和類名。顯示如何檢測家庭?

回答

0

您可以使用ActivityManager來得到它。以下是示例代碼:

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 


// get the info from the currently running task 
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 

Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName()); 

ComponentName componentInfo = taskInfo.get(0).topActivity; 
String packageName = componentInfo.getPackageName(); 

你需要將你的清單以下權限:

uses-permission android:name="android.permission.GET_TASKS" 

Example Project

從logcat中你可以看到哪些活動lanched ..

+0

如何檢查它的home啓動程序包名稱是否像if(packageName.equals(HOME_ACTIVITY_PACKAGE)){} –

+0

@yuva如果您在日誌中獲取活動名稱,然後將其存儲在字符串中並與此相比較。 – Hariharan

+0

在Android 4.1及更高版本中不支持logcat閱讀。這就是爲什麼我需要家庭launcher的包名稱,我可以得到它爲不同的設備。它針對不同的設備而不同。 –

相關問題