我试图开发一个应用程序来检查您的设备的安全性,我正在开发一个功能来检查该模式是否可见(在锁屏幕中,如果您有一个模式并显示在屏幕上)。
某些版本之前,您可以使用以下方法在Settings.Secure中检查:
Settings.Secure.getInt(contentResolver, Settings.Secure.LOCK_PATTERN_VISIBLE)他们更改了它,现在它在一个名为LockPatternUtils的类上,该方法称为isVisiblePatternEnabled。
访问该类的唯一方法是通过反射,但当我这样做时,它会抛出由InvocationTargetException引发的NullPointerException。
我试着调试,但是得到了“源代码不匹配字节码”,所以我在Android搜索中检查了源代码,它将NullPointerException原因抛到了这个方法中,他们使用ServiceManager.getService("lock_settings"),而代码的特定部分返回null。
它说,getService返回“对服务的引用,如果服务不存在,则返回null”。
问题是,这个服务确实存在,因为当我执行亚行命令以检查运行在模拟器上的服务列表时,它就会出现。
那么,我的问题是:,我有什么遗漏了吗?
发布于 2022-11-16 15:14:51
我知道这是一个非常古老的查询,但我希望这会有所帮助。
即使有反射,也只允许系统应用程序获得“lock_settings”服务。这是有意义的,因为这些都是安全的特性。
https://stackoverflow.com/questions/70769708
复制相似问题