Как получить UserHandle? для пользователя рабочих приложений в Kotlin до SDK 30?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить UserHandle? для пользователя рабочих приложений в Kotlin до SDK 30?

Сообщение Anonymous »

Я пытаюсь получить доступ к UserHandle рабочего профиля на Android для моего приложения запуска, чтобы я мог отображать рабочие приложения. Я не могу найти способ сделать это до Android 15 (SDK 30), но мне нужно, чтобы это работало на Android 8 (SDK 26). Рабочие профили были добавлены в Android 5 (SDK 21). Вот написанный мной код, который работает для SDK 30 и выше:
@RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
fun doesWorkProfileExist(context: Context): Boolean {
val launcherApps =
context.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
val userManager =
context.getSystemService(Context.USER_SERVICE) as UserManager

for (userInfo in userManager.userProfiles) {
if (launcherApps.getLauncherUserInfo(userInfo)?.userType == USER_TYPE_PROFILE_MANAGED) {
return true
}
}

return false
}

@RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
fun getWorkProfile(context: Context): UserHandle? {
if (doesWorkProfileExist(context)) {
val userManager = context.getSystemService(Context.USER_SERVICE) as UserManager
val profiles = userManager.userProfiles

val launcherApps =
context.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
for (userInfo in profiles) {
if (launcherApps.getLauncherUserInfo(userInfo)?.userType == UserManager.USER_TYPE_PROFILE_MANAGED) {
return userInfo
}
}
}
return null
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... ore-sdk-30
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»