对不同 API 级别的 Base64 支持

新手上路,请多包涵

在我的安卓应用中

构建.gradle

 android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 27
        ...
        }
    ....
}

科特林代码

val data = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    Base64.getDecoder().decode(str)
} else {
    Base64.decode(str, Base64.DEFAULT) // Unresolved reference: decode
}

显然,在使用 API 24 之前的 Base64 变体时,我遇到了编译错误。

但是我如何才能支持所有 API 级别并像 24 之前一样使用 Base64,之后又如何?

原文由 Alexey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 733
1 个回答

使用 android.util.Base64 将解决您的问题,它可从 API 8 获得

data = android.util.Base64.decode(str, android.util.Base64.DEFAULT);

用法示例:

 Log.i(TAG, "data: " + new String(data));

原文由 Abhishek Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题