Моя логика удаления работает правильно на полностью управляемых устройствах (владелец устройства), но не работает на устройствах BYOD (рабочий профиль/владелец профиля).
Контекст
- На полностью управляемых устройствах → удаление работает нормально.
- В BYOD (рабочий профиль) → метод работает без сбоев, но приложение не удаляется.
- Приложение было установлено из управляемого Google Play (Play Store с рабочим профилем).
Код: Выделить всё
public static boolean uninstallPackages(Context context, String... packages) {
if (DPCUtils.isDeviceOwner(context) || DPCUtils.isProfileOwner(context)) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
for (String pkg : packages) {
packageInstaller.uninstall(
pkg,
PendingIntent.getBroadcast(
context,
0,
new Intent(),
Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
? PendingIntent.FLAG_IMMUTABLE
: 0
).getIntentSender()
);
}
return true;
}
}
return false;
}
Код: Выделить всё
PackageInstaller.uninstall()- установщику записи
- владельцу устройства
- владельцу аффилированного профиля
Каков правильный и поддерживаемый подход к автоматическому удалению приложений при настройке рабочего профиля BYOD?
Подробнее здесь: https://stackoverflow.com/questions/798 ... rk-profile