如何确定安卓设备是否支持多用户?

3

2
据我所知,很遗憾目前没有可靠的方法。API级别17表示操作系统能够支持多个用户空间,但是否有相应的设置选项则因情况而异。我认为平板电脑等大屏设备将支持多用户,而手机等小屏设备则不会,但这可能取决于制造商的选择。 - CommonsWare
3个回答

3

在UserManager类中有一个隐藏的API:supportsMultipleUsers()。您可以使用下面的反射方法访问它,但这种技术通常不建议使用,因为该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;
}

2
如果你只需要检查设备上是否已创建多个用户帐户,可以使用UserManager.getUserCount()(确保SDK版本>16)。我不知道理论上是否有可能区分是否存在多个用户,但迄今为止仅使用了一个而没有多用户支持。注意:此解决方案实际上无法正常工作,似乎需要系统级权限。有关详细信息,请参见UserManager getUserCount() (Jelly Bean)

这很好,但不完全是我想要的。但我认为现在假设无法知道是否有可能拥有多个账户。 - prograde
需要获取任何权限吗?根据这个链接:stackoverflow.com/q/13508258/878126,似乎不可能做到,因为这是一个系统权限。也许使用root权限可以实现吗? - android developer
非常抱歉回复晚了。实际上我从未尝试过,但根据这个问题看起来是这样的:https://dev59.com/kGvXa4cB1Zd3GeqPGiwT - Thrakbad

-2

您可以使用以下代码检查Android版本:

int oSversion = Integer.valueOf(android.os.Build.VERSION.SDK_INT);

if (osVersion > 16) {
   // This phone supports multi-user   
}

5
不行。Nexus 10允许多个用户空间,而Galaxy Nexus不允许,两者都使用Android 4.2版本,且SDK_INT为17(注意:不是SDK)。 - CommonsWare
好的,Build.VERSION.SDK_INT < 17 的确表示“百分之百不是”。 - Yaroslav Mytkalyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接