Wie bekomme ich UserHandle? für den Benutzer von Arbeits-Apps in Kotlin vor SDK 30?Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Wie bekomme ich UserHandle? für den Benutzer von Arbeits-Apps in Kotlin vor SDK 30?

Post by Anonymous »

Ich versuche, auf das UserHandle des Arbeitsprofils auf Android für meine Launcher-App zuzugreifen, damit ich Arbeits-Apps anzeigen kann. Ich kann vor Android 15 (SDK 30) keine Möglichkeit finden, dies zu tun, aber ich brauche es, um unter Android 8 (SDK 26) zu funktionieren. Arbeitsprofile wurden in Android 5 (SDK 21) hinzugefügt. Hier ist der Code, den ich geschrieben habe und der für SDK 30 und höher funktioniert:

Code: Select all

@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
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post