【问题标题】:How do I get TLS 1.2 to work in Android 4.4 without the help of Google Play Services?在没有 Google Play 服务帮助的情况下,如何让 TLS 1.2 在 Android 4.4 中运行?
【发布时间】:2016-06-08 14:28:37
【问题描述】:

我的 Android 应用程序严格运行在无法使用 Google Play 服务的 Android 版本上。该应用程序通过 HttpsUrlConnection 从正在更新为仅支持 TLS 1.2 握手的远程服务器发出数据请求。我查看了这个blog post 并尝试实现它,但它对我不起作用。我知道我可以使用 Google Play 服务和更新 SSL 提供程序来让它工作,但这不是我特定的 Android 设备的选项。我的问题是,如果没有 Google Play Services 的帮助,我能否让 TLS 1.2 在 Android 4.4 上运行?

【问题讨论】:

    标签: android ssl android-4.4-kitkat tls1.2


    【解决方案1】:

    我也有同样的要求。我能够使用 httpClient 4.1.2 为 Android 4.1 启用 TLS 1.1+ 我用这个链接https://github.com/erickok/transdroid/blob/master/app/src/main/java/org/transdroid/daemon/util/TlsSniSocketFactory.java

    在代码中包含该文件后,只需按照以下代码引用它们即可。

    SchemeRegistry registry = new SchemeRegistry();
    registry.register(new Scheme("https", new TlsSniSocketFactory(), 443));
    client = new DefaultHttpClient(new ThreadSafeClientConnManager(httpParameters, registry),httpParameters);
    

    希望这对您有所帮助。

    【讨论】:

    • 我实际上看过它,但它遇到了与使用 HttpURLConnection 相同的问题。两者仍使用 SSLEngine,但仍需从 Google Play 服务更新。
    • @Kelly 不,你不需要。你必须注册课程。它对我来说很好。无论如何,您似乎找到了替代方案。
    • 这对我有用,经过许多其他尝试和挫折。谢谢!
    • SchemeRegistry 在 Android P 及更高版本上不可用。
    【解决方案2】:

    我最终从 apkmirror.com 安装了一份 Google Play 服务来解决这个问题并使用:

    ProviderInstaller.installIfNeeded(getContext());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      相关资源
      最近更新 更多