java android新字符串

java android新字符串,java,android,string,api,Java,Android,String,Api,我必须将字节数组转换为字符串。因此,我使用此函数: public static String byteToString(byte[] bytes) { String str = new String(bytes, Charset.forName("UTF8")); return str; } 问题在于,它需要API 9: 调用需要API级别9(当前最小值为8):new java.lang.String 但我也希望向API8用户提供我的应用程序。有任何可能性或替代方案吗?你不能

我必须将字节数组转换为字符串。因此,我使用此函数:

public static String byteToString(byte[] bytes) {
    String str = new String(bytes, Charset.forName("UTF8"));

    return str;
}
问题在于,它需要API 9:

调用需要API级别9(当前最小值为8):new java.lang.String


但我也希望向API8用户提供我的应用程序。有任何可能性或替代方案吗?

你不能。您可以做的是检查
sdk
版本

  if (Build.VERSION.SDK_INT >= 9) {
    // Constructor with charset
  } else {
   // Constructor without charset, providing the charset as string
  }

设备类似于您可以使用的
0.7%
(构造函数
String(byte[],String)
)。它始终可用(API级别1+)。

哪个调用?forName?@RobertHarvey字符串构造函数和字符集参数(java.lang.String),因为该API级别存在一个错误,这是一个有点糟糕的答案,不是吗?不,不是(imo)。他可以使用检查来调用不同的构造函数,避免额外的调用-我没有检查框架代码-但他可能会避免额外的内部
调用(..)
调用。在任何情况下,这都不会造成伤害,@seelenVirtuoset技术上没有Charset对象的构造函数,但是对于API 8上的字符串Charset(仍然我会使用这种检查),注释总是关于措辞,我在注释和命名等方面有点迂腐。顺便说一句,现在这是一个很好的答案+1我接受了另一个答案,因为它运行良好。但是我也给了+1谢谢你的帮助