如何针对api低于26的设备使用base 64?

时间:2019-10-24 18:02:30

标签: java android base64

我正在开发一个使用授权密钥的应用程序,该应用程序使用排球将用户连接到应用程序服务器。为了能够识别授权密钥,必须同时使用授权密钥本身和用户尝试从服务器启动的操作对其进行解码,我在第一行代码中对下面的授权密钥以及其他区域进行了编码使用编码的地方:

  String authkey="xxxgafjeusjsj" ;
  String action ="pay" ;
  String auth=authkey+action
  String Authkey=Base64.getEncoder().encodeToString(auth_.getBytes());

 ..... 
  return Base64.getEncoder().encodeToString(signature);
  ...... 
  PKCS8EncodedKeySpec keySpecPKCS8 = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyContent));

上面的代码工作正常,但是最后3行只能用于api 26及更高版本的设备。我可以在最后三行代码中使用替代代码吗?建议我使用“导入android.util.Base64;”与“ Java.util.Base64”相对,但它返回错误无法解析方法getEncoder()请帮助

1 个答案:

答案 0 :(得分:0)

  

建议我使用“ import android.util.Base64;”相对于   'Java.util.Base64',但返回错误无法解决的方法   getEncoder()

android.util.Base64具有encodeToString相当于getEncoder().encode(args)

您可以使用

String Authkey= "";

if (VERSION.SDK_INT >= 26) {
       Authkey = Base64.getEncoder().encode(auth_.getBytes()).toString();
} else {
      Authkey = android.util.Base64.encodeToString(auth_.getBytes(), 0)
}