从我的应用程序中打开android自己的启动器
嗨它已经2天找到这个简单的问题。如果未将其设置为默认值,我想从我的应用程序即使启动Android自己的启动程序。从我的应用程序中打开android自己的启动器
final PackageManager packageManager=getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage("com.android.launcher");
Android的自身发射这个返回空但如果我尝试定制发射是给我成功
找到解决办法后,调查getLaunchIntentForPackage的源代码。按照文件,
当前实现先来看看在 类别CATEGORY_INFO主要活动,其次为主要活动在 类别CATEGORY_LAUNCHER,或者如果没有发现返回null。
因此,该函数不寻找CATEGORY_HOME,我重写它在以下方式,它的工作完美。
Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
intentToResolve.addCategory(Intent.CATEGORY_HOME);
intentToResolve.setPackage("com.android.launcher");
ResolveInfo ri = getPackageManager().resolveActivity(intentToResolve, 0);
if (ri != null)
{
Intent intent = new Intent(intentToResolve);
intent.setClassName(ri.activityInfo.applicationInfo.packageName, ri.activityInfo.name);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
}
我试图使用相同的“com.android.phone”,但由于某种原因它不起作用。任何投入? – 13hsoj 2013-08-12 11:13:11
你肯定被安装在设备上的默认Google Android Launcher
?如果不是,那么它确实是NULL
。
我试图在模拟器和手机上我已经尝试过“com.sonyericsson.home”我的Xperia弧但它给我强制关闭错误甚至不会抛出任何异常。 – 2011-12-15 10:50:42
我正在开发自定义主屏幕,并且我希望在需要时启动默认主页,并且我面临着同样的问题。 – Palani 2011-12-29 08:32:00