繁体   English   中英

如何以编程方式在Android启动器之间切换

[英]How to Switching between launchers of Android Programatically

我有两个启动器,Android启动器和我的自定义启动器。 我的自定义启动器是默认启动器。当android设备启动时,它会启动我的应用程序。 我想做的是,当用户在启动器中按一些按钮时,我想启动android启动器(与android一起提供)而无需要求用户选择启动器。 我想像启动任何其他应用程序一样进行操作。

android有可能吗?

你可以试试看

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);
        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            | Intent.FLAG_ACTIVITY_CLEAR_TASK
            | Intent.FLAG_ACTIVITY_NEW_TASK);
        break; 
    } 
} 
startActivity(intent);

不幸的是,除非设备已植根,否则这是不可能的,在android 2.2之前,有一种方法可以执行此操作,但是该方法不再可用。

但是,如果设备已植根或您的应用程序是“系统”应用程序(位于/ system / apps文件夹中),则可以在应用程序启动时禁用其他启动器应用程序,并在应用程序退出时重新启用它们,这样您就可以启动器将成为系统中唯一的启动器,因此将被隐式视为默认启动器(但是您需要在启动器活动中处理“后退”按钮,“主页”按钮将正常工作)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM