【发布时间】:2019-01-16 08:04:01
【问题描述】:
我正在尝试禁用一项 Android StrictMode 检查 - 检测未标记的套接字。
我这样做有几个理由:
我们的应用程序中使用的一些库,例如Crashlytics /毕加索等 在内部使用 OkHttp 并且 StrictMode 检测到未标记的套接字 OkHttp 代码中的问题(我无权访问第三方库的代码来解决此问题)
我需要清除我无法修复的严格模式未标记套接字错误的日志,以消除其他 StrictMode 问题检测的噪音
要启用 VmPolicy 我们使用VmPolicy.Builder.detectAll() 方法
通过查看 StrictMode 的来源,我找到了方法 VmPolicy.Builder.permitUntaggedSockets,但它注释为 @hidden 并且不能在 API = 28 上使用
我发现这个问题的唯一solution 是将detectAll() 方法体复制到我的代码中并删除对detectUntaggedSockets() 的调用,但在我看来它容易出错且难以维护。
也许有人可以为所描述的问题提出更好的解决方案?
非常感谢有关“为什么permitUntaggedSockets() 隐藏在 API 28 中”的任何信息。
【问题讨论】:
标签: android android-strictmode