库存的 Cyanogenmod ROM 支持内置配置文件,虽然我不确定这是否是默认 Android 功能的一部分,但我想知道是否可以获得当前选择的配置文件的名称。
我还没有找到任何关于此的开发人员文档。
(假设 Android SDK 不支持这个,超级用户应用可以实现这个功能吗?)
谢谢
通过一些 CM 源,我找到了ProfileManager的源代码。这些方法是公开的,所以我想我不需要深入 Java 反射的兔子洞……但为了使用这些类,我需要一些 Cyanogenmod JAR 来构建。
库存的 Cyanogenmod ROM 支持内置配置文件,虽然我不确定这是否是默认 Android 功能的一部分,但我想知道是否可以获得当前选择的配置文件的名称。
我还没有找到任何关于此的开发人员文档。
(假设 Android SDK 不支持这个,超级用户应用可以实现这个功能吗?)
谢谢
通过一些 CM 源,我找到了ProfileManager的源代码。这些方法是公开的,所以我想我不需要深入 Java 反射的兔子洞……但为了使用这些类,我需要一些 Cyanogenmod JAR 来构建。
知道了。有点丑陋的反射和瞧。这些类是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();
}