Ответ 1
Вы пробовали это?
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER));
(Я сам не пробовал, потому что мой вариант использования немного сложнее --- я заменил пусковую установку, и я хочу вызвать старую пусковую установку...)
Я также обнаружил, что вы можете использовать диспетчер пакетов, чтобы просмотреть все действия, соответствующие определенным критериям фильтра намерения. Например, если вы хотите найти все действия, помеченные как домашняя активность дома по умолчанию, используйте это:
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 another default home screen)
{
intent=packageManager.getLaunchIntentForPackage(resolveInfo.activityInfo.packageName));
break;
}
}
Обратите внимание, что я заменил домашний экран по умолчанию на своем устройстве - поэтому я должен убедиться, что активность, которую я обнаружил, - это не работа, которая работает! Если вы не заменили домашнюю деятельность по умолчанию, вам не нужна эта проверка - просто используйте первую (и, возможно, единственную) домашнюю активность по умолчанию.
(Обратите внимание, что я все еще не могу запустить старую пусковую установку из моей пусковой установки, возможно, потому, что старая пусковая установка хранит запись о пусковой установке по умолчанию, которая является моей новой пусковой установкой, и просто обращается к ней. Я не знаю Но, по крайней мере, это не сбой, и я бы догадался, что, если вы не заменили старый домашний экран, это может сработать.)