设备名称显示为'?

问题描述 投票:0回答:1

注册的设备会显示在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 ());
actions-on-google
1个回答
0
投票

你可以尝试用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不支持外语等等。

© www.soinside.com 2019 - 2024. All rights reserved.