Возможно ли получить текущий профиль телефона?

В запасе Cyanogenmod ROM есть поддержка профилей, испеченных в и, хотя я не уверен, что это часть функциональности Android по умолчанию, мне было интересно, можно ли получить имя текущего выбранного профиля.

Я не смог найти документацию разработчика по этому вопросу.

(Предполагая, что Android SDK не поддерживает это, может ли приложение суперпользователя реализовать эту функциональность?)

благодаря


Трудясь через некоторый источник CM, я нашел исходный код для ProfileManager . Методы являются общедоступными, поэтому, я думаю, мне не нужно спускаться с кроличьей дыры Java-отражения … но для того, чтобы использовать эти классы, мне нужно, чтобы JARs Cyanogenmod были созданы против.

Понял. Немного уродливого отражения и вуаля. Классы – ProfileManager и Profile

Object o = getSystemService("profile"); try { Class<?> ProfileManager = Class.forName("android.app.ProfileManager"); Class<?> Profile = Class.forName("android.app.Profile"); try { Method getActiveProfile = ProfileManager.getDeclaredMethod("getActiveProfile", null); Method getName = Profile.getDeclaredMethod("getName", null); try { String strProfile = (String) getName.invoke(getActiveProfile.invoke(o)); System.out.println("Current profile is: " + strProfile); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } catch (NoSuchMethodException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); }