是否可以获取手机当前选择的个人资料?

时间:2013-04-05 11:07:44

标签: java android cyanogenmod

股票Cyanogenmod ROM支持烘焙的配置文件,虽然我不确定这是否是默认Android功能的一部分,但我想知道是否有可能获得当前所选配置文件的名称。

我无法在此找到任何开发者文档。

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

由于


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

1 个答案:

答案 0 :(得分: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();
    }