- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在浏览 PackageManager API。我发现定义了以下常量:
1) GET_DISABLED_COMPONENTS
2) GET_DISABLED_UNTIL_USED_COMPONENTS
3) COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED
4) COMPONENT_ENABLED_STATE_DISABLED_USER
5) COMPONENT_ENABLED_STATE_DISABLED
6) COMPONENT_ENABLED_STATE_DEFAULT
7) COMPONENT_ENABLED_STATE_ENABLED
8) GET_UNINSTALLED_PACKAGES
阅读documentation ,我看到对于常量 5-7,一个组件已被启用/禁用,而不管它在 list 文件中是如何指定的。
对于 3,文档说:
This application should be considered, until the point where the user actually
wants to use it.
这是什么意思?
对于 4,文档说:
The user has explicitly disabled the application, regardless of what it has
specified in its manifest.
如果此标志与应用程序相关,为什么名称以“COMPONENT”开头?另外,用户如何禁用该应用程序?
对于 8,文档说:
Flag parameter to retrieve some information about all applications (even
uninstalled ones) which have data directories. This state could have
resulted if applications have been deleted with flag DONT_DELETE_DATA with
a possibility of being replaced or reinstalled in future.
DONT_DELETE_DATA 标志在哪里指定?
总而言之,如果有人可以为开发人员解释这些常量的用例,那将会很有帮助。
谢谢。
最佳答案
我在我的一个项目中使用它们。在这里查看。 https://github.com/slightfoot/android-launcher-badges
不确定是否有帮助。
编辑:您会看到此处使用的大部分标志:AppBadge.java其余的都是不言自明的。 The documentation似乎很好地描述了一切。
COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED(已添加到 API 级别 18)
它提到的示例似乎足以解释可能的用例。
Flag for
setApplicationEnabledSetting(String, int, int)
only: This application should be considered, until the point where the user actually wants to use it. This means that it will not normally show up to the user (such as in the launcher), but various parts of the user interface can useGET_DISABLED_UNTIL_USED_COMPONENTS
to still see it and allow the user to select it (as for example an IME, device admin, etc). Such code, once the user has selected the app, should at that point also make it enabled. This option currently can not be used withsetComponentEnabledSetting(ComponentName, int, int)
.
COMPONENT_ENABLED_STATE_DISABLED_USER (已添加到 API 级别 14)
它们似乎被设计为最终与 setComponentEnabledSetting
一起使用,但目前它们不能。这是为了向前兼容,文档说明您可以使用 setApplicationEnabledSetting
。
Flag for
setApplicationEnabledSetting(String, int, int)
only: The user has explicitly disabled the application, regardless of what it has specified in its manifest. Because this is due to the user's request, they may re-enable it if desired through the appropriate system UI. This option currently cannot be used withsetComponentEnabledSetting(ComponentName, int, int)
.
DONT_DELETE_DATA 标志已重命名为 DELETE_KEEP_DATA 并且文档尚未更新。它已被标记为 @hide
,因为它不供公共(public)开发人员使用。
/**
* Flag parameter for {@link #deletePackage} to indicate that you don't want to delete the
* package's data directory.
*
* @hide
*/
public static final int DELETE_KEEP_DATA = 0x00000001;
关于Android - PackageManager 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686490/
我是android编程的新手。我已经使用带有 MainActivity.java 和 ClassFragment.java 文件的 Eclipse 创建了一个应用程序。 ClassFragment 是
我开发了一个应用程序,我在其中启用了我们拥有的任何应用程序都可以手动安装 但我的问题是我只想启用我自己的包名而不是任何其他应用程序包名。 这是我用过的代码。 try { PackageMana
我正在尝试使用 Pacakge 管理器从设备中获取已卸载应用程序的列表。但是,代码返回所有已安装应用程序的列表。 // get a list of all installed apps
我想让所有有 intentlisteners 的应用程序 Intent.CATEGORY_HOME 所以基本上是启动器 我有这段代码: final Intent mainIntent = null;
我正在浏览 PackageManager API。我发现定义了以下常量: 1) GET_DISABLED_COMPONENTS 2) GET_DISABLED_UNTIL_USED_COMPONENT
为了解决问题,我想我会尝试重新安装Chocolatey软件包提供程序。似乎没有cmdlet可以删除或卸载程序包提供程序。我指的不是删除软件包源或软件包。我在Windows 10上使用PowerShel
我正在编写一个应用程序,它具有某种程度的模块化系统。它有一个核心应用程序和一些应用程序,这些应用程序由一个实现所需接口(interface)的 Service 组成。我关注了the guide创建 I
您好,我正在从我的应用程序中打开另一个应用程序。我想在对话框中显示另一个应用程序。那么我有什么选择。我正在尝试下面的代码... public class PictureGallery extends
我正在尝试使用自 API 1.0 以来可用的 Android PackageManager.setComponentEnabledSetting 问题是,我不明白如何正确使用它。我传递了一个包含包组件
如何编写一个 Android 应用程序来接收来 self 的 Yamaha YDP-113 电子钢琴的 MIDI 事件? 当我强制执行时,出现运行时错误: FATAL EXCEPTION: main
所以我找到了this有用的答案,它描述了需要使用哪些 Android 部件来检查 Android 应用程序是否已启用。我还阅读了链接的文档。 ApplicationInfo ai = getActiv
我的应用使用 WebView。从 L-preview 开始,引入了一个新的功能过滤器: FEATURE_WEBVIEW。声明您的应用只能安装在完全实现 android.webkit.* API 的设备
我正在使用 PackageManager.getApplicationLabel(ApplicationInfo) 获取应用程序名称。但是这个名称可能会根据设备区域设置和应用程序资源字符串而改变。 所
如果我使用下面的代码禁用 AndroidManifest.xml 中定义的静态 BroadcastReceiver,它会在重启后重新启用吗?它似乎不是,但文档没有说明是否应该。 final Compo
有没有办法判断我从 getApplicationIcon() 返回的 Drawable 是否是默认/内置图标? 例如,我的模拟器上安装了几个应用程序。 “Adobe Reader”有一个由 Adob
我正在查看 PackageManager 类的源代码,它和所有方法一样是抽象的。制造商是否应该为它编写一个真正的实现,或者我遗漏了什么? 最佳答案 PackageManager 的真正实现是位于 fr
我有一个 .java 文件: .... import android.content.pm.ApplicationInfo; import android.content.pm.PackageI
我正在 Android 中编写一个启动器,这是我一直试图修复一段时间但没有成功的问题。 我有下面的代码来查询在我的启动器最开始运行的所有 Activity ,比如 onResume()。 final
我在使用 PackageManager.getInstalledPackages() 方法时遇到了一个非常奇怪的情况。我第一次启动我的 Activity 时,我得到了所有已安装包的有效列表。但是我第二
我计划在亚马逊应用商店和 Google Play 上发布我的应用程序,并且我的应用程序中的某些内容需要根据应用程序是否从亚马逊应用程序商店安装而略有不同。如果我正确理解了 PackageManager
我是一名优秀的程序员,十分优秀!