Android 4.2支持在共享设备(如平板电脑)上使用多个用户空间(http://developer.android.com/about/versions/android-4.2.html#MultipleUsers)。我该如何知道特定的设备是否是“可共享的设备”?
我能否通过编程方式检查设备是否支持多个用户?
Android 4.2支持在共享设备(如平板电脑)上使用多个用户空间(http://developer.android.com/about/versions/android-4.2.html#MultipleUsers)。我该如何知道特定的设备是否是“可共享的设备”?
我能否通过编程方式检查设备是否支持多个用户?
在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;
}
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
}
SDK_INT
为17(注意:不是SDK
)。 - CommonsWare