1. Get the application
View code
mPackageManager = getPackageManager(); mAllPkgs = mPackageManager .getInstalledPackages(mPackageManager.GET_ACTIVITIES);
2. Open the application. If the application already exists in a task, switch to the task where the application is located. If the application does not exist, open the application again.
View code
@Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { PackageInfo packageInfo = (PackageInfo) arg0.getItemAtPosition(arg2); boolean flg = false; List<RecentTaskInfo> mTasks = mActivityManager.getRecentTasks(MAX_TASK, 0); if (mTasks != null) { for (RecentTaskInfo rti : mTasks) { if (rti.baseIntent.getComponent().getPackageName() .equals(packageInfo.packageName)) { startActivity(rti.baseIntent); flg = true; break; } } } if (!flg) { Intent intent = mPackageManager .getLaunchIntentForPackage(packageInfo.packageName); startActivity(intent); } }
3. open application properties (API level: 9)
View code
PackageInfo packageInfo = (PackageInfo) arg0.getItemAtPosition(arg2); Intent intent = new Intent( Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + packageInfo.packageName)); startActivity(intent);