2017-08-17 38 views
1

在設置我們可以手動設置鎖屏,但我想通過編程設置鎖屏的消息如何設置鎖屏信息編程

enter image description here

下面我試圖接近:

  1. 1 .have嘗試了DevicePolicyManager.getDeviceOwnerLockScreenInfo,但它返回null。
  2. 我試圖使用ContactsContract.Profile.CONTENT_URI來獲取它,在這裏沒有關於這個的字段。我提取了這個URI中現有字段的值,但沒有值,因爲我們已經設置了鎖定屏幕消息。
  3. 我試過使用LOCK_PATTERN_ENABLED & NEXT_ALARM_FORMATTED,這些也沒有用。

我已經試過以上所有接近但無法設置和獲得消息,如果有人知識讓我更新。

回答

0

經過大量的研究,我通過使用反射得到了正確的解決方案,我們可以實現它。有一個LockPatternUtils類,通過它我們可以獲取設備信息,下面是代碼。

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, 1); 

    //String a = Settings.Secure.getString(getContentResolver(),"lock_screen_owner_info"); 
    //printLog("a : "+a); 

    Class<?> cl = null; 
    try { 
     cl = Class.forName("com.android.internal.widget.LockPatternUtils"); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
    try { 
     Constructor<?> cons = cl.getConstructor(Context.class); 
     Object obj = cons.newInstance(this); 
     Class[] paramInt = new Class[1]; 
     paramInt[0] = Integer.TYPE; 
     Method method = cl.getDeclaredMethod("getOwnerInfo", paramInt); 
     Log.d("b : " ,""+ method.invoke(obj, 0)); 
    } catch (NoSuchMethodException e) { 
     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } catch (InstantiationException e) { 
     e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
     e.printStackTrace(); 
    } 
+0

它不工作! – shadygoneinsane

相關問題