如何在 Android Lollipop 中使用 Base64.getUrlEncoder

How to use Base64.getUrlEncoder in Android Lollipop

如何在 android 中使用较低的 Build.VERSION.SDK_INT 获得此方法的相同结果:

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

输出是这样的:https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBa2lqdVpnbEQ1MXVkanZsY2xaV1NOZl8yd28/root/content

此代码工作正常,但问题是它需要 android 版本 oreo 或更高版本,但我的应用程序最低 sdk 是 Lollipop 是否有可能获得相同的结果但是使用可在 android 的较低版本上工作的代码,从 Lollipop 及更高版本? 谢谢

你会想要使用 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_SAFEandroid.util.Base64.NO_PADDING 标志。