- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我安装了 Launcher 应用程序。并且用户已选择另一个启动器作为默认启动器,这意味着当按 HOME 时,默认启动器将出现在前面。
我想为用户提供重置默认启动器的便利。例如,在我的启动器的 UI 中单击按钮将使 Launcher-Pick-Up 弹出窗口显示。
Go Launcher 可以做到这一点(在 Go 的设置 View 中)。似乎 Go Launcher 会执行类似“PackageManager.clearPackagePreferredActivities("com.android.launcher")”之类的操作来清除首选启动器 Activity !
如何实现?
最佳答案
出于安全问题,启动器只能清除自己的首选设置。
这里有一个解决方法:
在 Manifest.xml 中注册一个模型 Activity :
<activity
android:name="MockupLauncher"
android:enabled="false"
android:exported="false"
android:excludeFromRecents="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
使用“PackageManager.setComponentEnabledSetting”触发操作系统清除当前首选启动器:
private void resetPreferedLauncher() {
PackageManager pm = mContext.getPackageManager();
ComponentName mockupComponent = new ComponentName(MockupLauncher.class.getPackage().getName(), MockupLauncher.class.getName());
pm.setComponentEnabledSetting(mockupComponent, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(startMain);
pm.setComponentEnabledSetting(mockupComponent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
// or
//pm.setComponentEnabledSetting(mockupComponent, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
这就是我的做法!享受吧!
关于android - 如何让 Launcher-Pick-Up 弹出窗口显示出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471350/
和这个一样,但还是没弄明白。尝试了所有解决方案.... Maven error: Could not find or load main class org.codehaus.plexus.class
我想知道是否可以为 Android 开发 App Launcher 应用程序。我指的是不同供应商推出的应用程序启动器,即 Microsoft App Launcher、Google App Launc
我正在尝试运行以下示例单元测试用例 class ExampleUnitTest { @Test fun addition_is_Correct() { assertEq
我已经在 Git Bash(64 位)上使用 Maven 几个月了,突然它停止工作,并且现在在任何 Maven 命令上生成此错误: myuser@mypc MINGW64 ~ (master *) $
在我们的项目中,我们使用 IBM J9 Java VM 和旧版本的 Equinox OSGi 框架 (org.eclipse.osgi_3.6.1.R36x_v20100806.jar)。是否可以将此
我正在尝试在 Ubuntu 14.04 64 位中安装 spark 客户端 IM,但它会抛出错误 Could not find or load main class com.install4j.run
我已经通过 CLi 在 Linux Mint 上安装了最新的 maven-3.2.5安装详情如下: export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
我已在 Windows 7 上安装了最新的 maven-3.0.4: 安装详情如下: 安装路径: C:\apache-maven-3.0.4 环境变量是: M2_HOME C:\apache-mav
这个问题在这里已经有了答案: Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launc
我正在使用 Windows 10,并且我已按照说明中的说明设置了路径 设置 M2_HOME (E:\softwares\apache-maven-3.3.9) 设置 M2 (%M2_HOME%\bin
我已经安装了 maven 2。当我在应用程序根目录中使用 mvn clean 或 mvn install 时,它工作正常。 但是当我尝试在 bash 脚本中使用 maven install 时,出现了
我知道这个问题已经在几个问题中讨论过,但没有答案解决我的具体问题。 我已经安装了 Git bash 和 Maven,我正在尝试使用 Git bash 执行 Maven。它因上述错误而中止。 我的系统环
manifest 中 launcher activity 的 launchMode 是否被忽略?android 文档说默认 launchMode 是“标准”,但如果这将应用于应用程序的主要 Activ
进程文件: launcher or launcher.exe 进程名称: Webshots Launcher 进程类别:存在安全风险的进程 英文描述: launcher.exe is an
我是 Python 和 Pygame 的新手,现在我正在尝试用一些简单的代码打开一个测试窗口: import pygame, sys from pygame.locals import * pygam
我们正在使用 eclipse 的共享安装(RAD 7.0,在 Citrix 下)。我们需要允许每个开发人员提供 eclipse.ini 的本地副本。 “--launcher.ini”命令行开关应该允许
我一直在尝试在运行的 Eclipse session 中从命令行打开文件。基于documentation ,我应该可以做到 eclipse --launcher.openFile myfilename
我们正在使用 eclipse 的共享安装(RAD 7.0,在 Citrix 下)。我们需要允许每个开发人员提供 eclipse.ini 的本地副本。 “--launcher.ini”命令行开关应该允许
我正在尝试为 Minecraft 制作自定义启动器。我只是想让它从我自己的服务器下载主 jar 文件,没有别的。我反编译了一个文件(Launcher.java)并将下载网址从“https://s3.a
我正在开发一个可以读取汽车数据的应用程序。 当用户第一次打开它时,他必须选择他驾驶的汽车(这是在 MainActivity 中)。 我想做的是,用户在打开应用程序时不能总是选择他的车。 App应在用户
我是一名优秀的程序员,十分优秀!