java - 如何在 Android Oreo 中获取字符串的 Base64 表示
问题描述
我需要在 Oreo api 级别下将字符串转换为 base64。我有以下代码:
public String genAuthKey(String u, String p){
user = u;
pass = p;
key = user+":"+pass;
byte[] encodedBytes = new byte[0];
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
encodedBytes = Base64.getEncoder().encode(key.getBytes());
Log.e("VERSION IS","O");
}else{
encodedBytes = Base64.getEncoder().encodeToString(key.getBytes()).getBytes();
Log.e("VERSION LESS","O");
}
Log.e("key",new String(encodedBytes,Charset.forName("UTF-8")));
return new String(encodedBytes, Charset.forName("UTF-8"));
}
在其他情况下,我需要代码来正确转换和发送数据。我怎样才能做到这一点?
解决方案
首先添加这个导入
import android.util.Base64;
然后用与版本无关的变体替换您的方法
public String genAuthKey(String u, String p) {
user = u;
pass = p;
key = user + ":" + pass;
byte[] encodedBytes = Base64.encode(key.getBytes(), Base64.DEFAULT);
Log.e("key", new String(encodedBytes, StandardCharsets.UTF_8));
return new String(encodedBytes, StandardCharsets.UTF_8);
}
享受!
推荐阅读
- reactjs - 使用 reactjs 中的材料表在列中自动生成当前日期
- sql - 为什么此执行计划的 %cpu 和成本会增加?
- python - Python networkx - 如何用标签绘制图形
- flutter - 必须向 Text 小部件提供非空字符串。错误
- javascript - Babel ES6 数组解构
- google-apps-script - 在 getData() 函数中抛出 newUserError
- java - 爪哇。将通用列表转换为工厂中的对象列表
- azure - 有没有办法从 ADF CI/CD 中的文件中引用 overrideParameters?
- angular - 如何在 jhipster 的“home.component.html”上显示/显示多个实体?
- terraform - 如何将 terraform 状态上传到 s3 存储桶?