StrictMode:如何禁用";“检测到未标记的插座”;在Android for targetSdk中>;=28

StrictMode:如何禁用";“检测到未标记的插座”;在Android for targetSdk中>;=28,android,android-strictmode,Android,Android Strictmode,我正在尝试禁用Android StrictMode检查之一—未标记套接字的检测 我有几个理由这样做: 我们应用程序中使用的一些库,例如Crashlytics/Picasso e.t.c。 正在内部使用OkHttp,StrictMode检测未标记的套接字 OkHttp代码中存在问题(我无法访问第三方库的代码来解决此问题) 我需要清除严格模式未标记套接字错误中的日志,我无法修复这些错误以消除噪声,用于其他严格模式问题检测 要启用VmPolicy,我们使用方法 通过查找StrictMode的源代码

我正在尝试禁用Android StrictMode检查之一—未标记套接字的检测

我有几个理由这样做:

  • 我们应用程序中使用的一些库,例如Crashlytics/Picasso e.t.c。 正在内部使用OkHttp,StrictMode检测未标记的套接字 OkHttp代码中存在问题(我无法访问第三方库的代码来解决此问题)

  • 我需要清除严格模式未标记套接字错误中的日志,我无法修复这些错误以消除噪声,用于其他严格模式问题检测

要启用VmPolicy,我们使用方法

通过查找StrictMode的源代码,我找到了VmPolicy.Builder.PermitIntagedSockets方法,但它被注释为
@hidden
,不能用于API=28

我发现这个问题的唯一方法是将
detectAll()
方法体复制到我的代码中,并删除对
detectungatedsockets()
的调用,但在我看来,它很容易出错,而且维护性很弱

也许有人能对所描述的问题提出更好的解决方案

关于“为什么
permitUntaggedSockets()
隐藏在API 28中”的任何信息都非常感谢


所以你的问题是:

关于“为什么PermitIntagedSockets()隐藏在中”的任何信息 API 28“非常感谢

我的答案是(这是一个好问题!XD) 我认为StictMode至少需要一个好的JavaDoc,我们并没有要求太多

对您来说,好消息是,有一个基于新的28-API的解决方案,下面是我的代码片段:

祝你有愉快的一天