java - 如何在 Android Lollipop 中使用 Base64.getUrlEncoder
问题描述
Build.VERSION.SDK_INT
我怎样才能在 android 中使用较低的这种方法获得相同的结果:
@RequiresApi(api = Build.VERSION_CODES.O)
String result1 = "https://1drv.ms/u/s!AkijuZglD51udjvlclZWSNf_2wo";
String aa = Base64.getUrlEncoder()
.withoutPadding()
.encodeToString(result1.getBytes(StandardCharsets.UTF_8));
此代码工作正常,但问题是它需要 android 版本 oreo 或更高版本,但我的应用程序最低 sdk 是Lollipop是否有可能获得相同的结果,但使用适用于Lollipop及更高版本的低版本 android 的代码?谢谢
解决方案
你会想使用android.util.Base64 encodeToString(byte[] input, int flags)
它从 Android 2.2.X Froyo/API 级别 8 开始可用。
你会像这样使用它:
android.util.Base64.encodeToString(YOUR_BYTE_ARRAY, android.util.Base64.URL_SAFE | android.util.Base64.NO_PADDING);
对于您的用例,最重要的是android.util.Base64.URL_SAFE
and android.util.Base64.NO_PADDING
标志。
推荐阅读
- workflow - 如何在 Jira 中添加具有新状态的列?
- python-3.x - Plotly 中多个 Sankey 子图的问题
- php - 如果未在更新表单中更新,图像将被删除
- algorithm - 对 n 个值进行排序所需的比较次数?
- deployment - 使用yum组织和部署相关组件子系统的发布的方法
- c++ - 代码打印出一系列无意义的数字
- r - 如何在森林图中分配不同颜色的负面和正面影响?
- angular - 在构造函数内调用服务时返回不工作
- regex - 编写适当的正则表达式以删除某些字符串之间的所有内容,以便在记事本++中查找和替换
- html - 如何对齐左侧的 2 个第一个元素和右侧的最后一个元素