2013-04-05 25 views
8

ROM CyanogenMod cổ phiếu có hỗ trợ cho các cấu hình được nướng và mặc dù tôi không chắc chắn đây có phải là một phần của chức năng Android mặc định hay không, tôi đã tự hỏi liệu có thể lấy tên của cấu hình được chọn hiện tại hay không.Có thể lấy tiểu sử hiện đang được chọn của điện thoại không?

Tôi chưa thể tìm thấy bất kỳ tài liệu dành cho nhà phát triển nào về điều này.

(Giả sử rằng Android SDK không hỗ trợ này, một ứng dụng superuser có thể thực hiện chức năng này?)

Cảm ơn


lê bước qua một số nguồn CM Tôi tìm thấy mã nguồn cho ProfileManager . Các phương pháp được công khai vì vậy tôi đoán tôi không cần phải đi xuống lỗ hổng phản chiếu Java ... nhưng để sử dụng các lớp này, tôi cần một số JAR CyanogenMod để xây dựng.

Trả lời

0

OK. Một chút phản ánh xấu xí và thì đấy. Các lớp học là 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(); 
    } 
Các vấn đề liên quan