Как получить Base64 представление строки в Android Oreo - PullRequest
0 голосов
/ 21 марта 2020

Мне нужно преобразовать строку в base64 под уровнем Oreo API. У меня есть следующий код:

 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"));

}

В остальных случаях мне нужен код для правильного преобразования и отправки данных. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

сначала добавьте этот импорт

import android.util.Base64;

, затем замените ваш метод на версию c вариант

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);
    }

Наслаждайтесь!

0 голосов
/ 21 марта 2020

Попробуйте этот код для кодирования kotlin:

var encodedString = Base64.encode("Your String", Base64.DEFAULT).toString(Charsets.UTF_8)

и для декодирования:

var decodedString = Base64.decode(encodedString, Base64.DEFAULT).toString(Charsets.UTF_8)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...