有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有两个启动器,安卓启动器和我的定制启动器。我的自定义启动器是默认启动器。当安卓设备启动时,它会启动我的应用程序。我想做的是,当用户按下my launcher中的某个按钮时,我想启动安卓 launcher(随安卓提供),而不要求用户选择启动器。我想像启动任何其他应用程序一样执行此操作

安卓系统能做到这一点吗


共 (2) 个答案

  1. # 1 楼答案

    你可以试试

    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);
    
  2. # 2 楼答案

    不幸的是,这是不可能的,除非该设备是根,在android 2.2之前,有一种方法,通过它你可以做到这一点,但它已不再可用

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