2

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

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

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

4

1 回答 1

2

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

于 2020-12-06T16:53:13.390 回答