注册的设备会显示在Google Home上。如果设备名称是韩语,则显示为'?'。需要编码吗?
SyncResponse.Payload.Device.Builder deviceBuilder =
new SyncResponse.Payload.Device.Builder ()
.setId (deviceId)
.setType (deviceType)
.setTraits (traits)
.setAttributes (Attributes)
.setName (DeviceProto.DeviceNames.newBuilder ()
.addAllDefaultNames (new ArrayList <> (Arrays.asList (String.valueOf (appType))))
.setName ("키티")
.addAllNicknames (new ArrayList <> (Arrays.asList ("키티")))
.build ())
.setWillReportState (true)
.setCustomData (new JSONObject (customData));
payloadDevices.add (deviceBuilder.build ());
你可以尝试用unicode编码字符,然后以UTF-8编码的方式传递。
byte[] b = new byte[] {(byte)0xed, (byte)0x82, (byte)0xa4, (byte)0xed, (byte)0x8b, (byte)0xb0};
String name = new String(b, "UTF-8");
但这很可能会导致同样的问号。编码失败的原因有很多,转换为JSON内容,google api不支持外语等等。