Как узнать, поддерживает ли устройство Android нескольких пользователей?
Android 4.2 поддерживает несколько пользовательских пространств "на общих устройствах, таких как планшеты" ( http://developer.android.com/about/versions/android-4.2.html). Как узнать, является ли определенное устройство "общим устройством"?
Можно ли программно проверить, поддерживает ли устройство нескольких пользователей?
3 ответа
В UserManager.supportsMultipleUsers() есть скрытый API. Вы можете получить доступ к этому, используя следующий метод, который использует отражение, хотя этот метод обычно не рекомендуется, потому что API может измениться в более позднем выпуске.
public static boolean supportsMultipleUsers() {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
// return UserManager.supportsMultipleUsers();
return (Boolean(UserManager.class.getDeclaredMethod("supportsMultipleUsers").invoke(null));
}
catch (Exception e) {}
return false;
}
Если вам достаточно проверить, созданы ли на устройстве несколько учетных записей пользователей, вы можете использовать UserManager.getUserCount()
(после обеспечения версии SDK> 16).
Я не знаю, возможно ли различить, если теоретически возможно несколько пользователей, но только один из них использовался до сих пор, и многопользовательская поддержка вообще отсутствует.
РЕДАКТИРОВАТЬ: Это решение на самом деле не работает, кажется, требуется разрешение на уровне системы. Подробности смотрите здесь. UserManager getUserCount() (Jelly Bean)
Вы можете проверить версию Android с помощью следующего кода:
int oSversion = Integer.valueOf(android.os.Build.VERSION.SDK_INT);
if (osVersion > 16) {
// This phone supports multi-user
}