-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prefs相关问题 #8
Comments
1.请问你的 sharedPreferences 对象是什么 |
sharedPreferences是PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener的Callback第一个参数 Xposed框架为LSP最新版,代码为https://github.com/HCGStudio/FuckMIUIGesture |
目前框架存储位置需要在模块激活的时候方可生效,你可以检查 /data/misc/一个很长的文件夹名称/模块包名/xxx.xml 有没有内容 |
另外看到了你的模块包名在注解中是手动设置的,请检查你的模块包名是否设置正确 |
包名是正确的,模块自身是能使用的 |
那就看一下 /data/misc 下有没有内容了 |
检查内容是包含的 <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="strong_mode" value="true" />
<string name="strong_mode_enable">true</string>
</map> 其中也包含了我使用String的尝试,但是模块依旧无法读取我的配置。 |
看样子是不需要指定的,你用原生的 XShare 读取设置试试可不可以 |
使用原生 val xShare = XSharedPreferences("com.hcgstudio.miui.fuck.gesture") Log打 |
如果原生也用不了的话大概可能是你的系统有点问题或者 LSPosed 有点问题,你可以去反馈一下,因为 API 调用的就是 XShare |
检查发现 |
我有两个同样的开源项目都hook了 systemui,详情可去参考一下,都是没有问题的 |
你把 API 改成 31 试试,但大概不会是这个的问题 |
是的,我也使用了你的模块,将API改成31依旧存在这个问题,而且发现 |
那大概是这样了,我之前问过他们 XShare 的问题,可以试试 CI 版,解决不了就去问问吧 |
什么代码会报错,具体错误日志是什么 |
问题已解决,按照文档手动设置即可。 val pref = try {
this.getSharedPreferences("${this.packageName}_preferences", Context.MODE_WORLD_READABLE)
} catch (e: SecurityException) {
// The new XSharedPreferences is not enabled or module's not loading
null // other fallback, if any
} 应该是库中没有处理好设置MODE_WORLD_READABLE导致 |
这是你在 prefsmanager 中获取的数据,但不保证会重新设置 private,API 会自动帮你设置 MODE_WORLD_READABLE,若失败,会设置 MODE_PRIVATE 具体请参考 API 源码实现方式
请查看源码验证你的应该,若有问题可以再反馈 |
我重新过了一遍,你目前使用混合方式读写的用法大概是不对的,下个版本会加上对 prefsmanager 的扩展性支持,以及自动设置这个功能,我到时候会重新用你的项目测试一下,暂时先这样解决。 |
另外,我的模块直接使用设置也不会被保存吗(也就是宿主不能读取设置) |
对的,你自己的模块一切正常,就是PreferenceFragmentCompat的问题了 |
好的,感谢提供问题,晚上我会对这个功能进行一下适配 |
该问题已修复,更新 API 版本即可,可参考 ModulePreferenceFragment 以及 Demo |
我也遇到这个问题,各种办法都没用,直到手动把你说的这个目录模块包名文件夹权限手动改成777,不知道为什么会自己变成711 |
在Activity中,使用以下代码保存配置。
保存后,在Activity中再使用
modulePrefs
的getBoolean
方法进行检查,发现设置已经保存。但是在hook中,
prefs.getBoolean
始终返回默认值false,perfs.all
返回为空。Target API 32,运行系统API 31,已经按照文档中说明进行配置,也参考了demo中的代码,使用
PrefsData
问题依然出现,使用String
进行数据保存问题依旧。请问是我用法不对,还是这是一个bug。
The text was updated successfully, but these errors were encountered: