Как узнать, поддерживает ли устройство 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   
}
Другие вопросы по тегам