命名不明确,但确实setApplicationHidden
有效地卸载了应用程序,但将 APK 和数据保留在存储中。如果您正在寻找一种无需卸载即可阻止使用该应用程序的方法,您可以尝试setPackagesSuspended
.
您可以找到setApplicationHidden
in PackageManagerService.setApplicationHiddenSettingAsUser()
(下面的相关摘要)的来源。它的逻辑很简单:
setApplicationHiddenSettingAsUser
调用packageSetting.setHidden()
以将包标记为对用户隐藏,
- 其他
PackageManagerService
调用方法packageSetting.getHidden()
来决定是否应该返回包。
代码摘要setApplicationHiddenSettingAsUser
:
@Override
public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
int userId) {
PackageSetting pkgSetting;
...
try {
...
synchronized (mPackages) {
pkgSetting = mSettings.mPackages.get(packageName);
...
if (pkgSetting.getHidden(userId) != hidden) {
pkgSetting.setHidden(hidden, userId);
mSettings.writePackageRestrictionsLPr(userId);
...
}
}
...
}
}