Bạn đã thử cái này chưa?
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER));
(Tôi đã không thử nó bản thân mình, bởi vì trường hợp sử dụng của tôi là một chút phức tạp hơn --- Tôi đã thay thế launcher, và tôi muốn gọi cũ launcher ...)
Tôi cũng đã phát hiện ra rằng bạn có thể sử dụng trình quản lý gói để xem qua tất cả các hoạt động đáp ứng một số tiêu chí lọc ý định. Ví dụ, nếu bạn muốn tìm tất cả các hoạt động đánh dấu là hoạt động chủ mặc định nhà, sử dụng này:
Intent intent=null;
final PackageManager packageManager=getPackageManager();
for(final ResolveInfo resolveInfo:packageManager.queryIntentActivities(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME), PackageManager.MATCH_DEFAULT_ONLY))
{
if(!getPackageName().equals(resolveInfo.activityInfo.packageName)) //if this activity is not in our activity (in other words, it's another default home screen)
{
intent=packageManager.getLaunchIntentForPackage(resolveInfo.activityInfo.packageName));
break;
}
}
Lưu ý rằng tôi đã thay thế màn hình chủ mặc định trên điện thoại của tôi --- đó là lý do tại sao tôi phải làm chắc chắn hoạt động tôi tìm thấy không phải là hoạt động đang chạy! Nếu bạn chưa thay thế hoạt động mặc định của nhà, bạn không cần kiểm tra này --- chỉ cần sử dụng hoạt động nhà mặc định đầu tiên (và có thể là duy nhất).
(Lưu ý rằng tôi vẫn không thể khởi chạy trình khởi chạy cũ từ trình khởi chạy của tôi, có lẽ vì trình khởi chạy cũ giữ bản ghi trình khởi chạy mặc định, là trình khởi chạy mới của tôi và chỉ cần gọi lại. Nhưng ít nhất nó không sụp đổ, và tôi đoán rằng, nếu bạn không thay thế màn hình chính cũ, nó chỉ có thể hoạt động.)
Nguồn
2011-11-09 22:17:13
http://stackoverflow.com/questions/5547606/how-to-integrate-default-app-of-android-in-our-app-programatically –