8

库存的 Cyanogenmod ROM 支持内置配置文件,虽然我不确定这是否是默认 Android 功能的一部分,但我想知道是否可以获得当前选择的配置文件的名称。

我还没有找到任何关于此的开发人员文档。

(假设 Android SDK 不支持这个,超级用户应用可以实现这个功能吗?)

谢谢


通过一些 CM 源,我找到了ProfileManager的源代码。这些方法是公开的,所以我想我不需要深入 Java 反射的兔子洞……但为了使用这些类,我需要一些 Cyanogenmod JAR 来构建。

4

1 回答 1

0

知道了。有点丑陋的反射和瞧。这些类是ProfileManagerProfile

    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();
    }
于 2013-04-05T12:32:55.857 回答