如何设置锁屏信息编程
问题描述:
在设置我们可以手动设置锁屏,但我想通过编程设置锁屏的消息如何设置锁屏信息编程
下面我试图接近:
- 1 .have尝试了DevicePolicyManager.getDeviceOwnerLockScreenInfo,但它返回null。
- 我试图使用ContactsContract.Profile.CONTENT_URI来获取它,在这里没有关于这个的字段。我提取了这个URI中现有字段的值,但没有值,因为我们已经设置了锁定屏幕消息。
- 我试过使用LOCK_PATTERN_ENABLED & NEXT_ALARM_FORMATTED,这些也没有用。
我已经试过以上所有接近但无法设置和获得消息,如果有人知识让我更新。
答
经过大量的研究,我通过使用反射得到了正确的解决方案,我们可以实现它。有一个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();
}
它不工作! – shadygoneinsane