API соседних сообщений Android - публикация "Ожидается, что BEGIN_OBJECT, но был STRING"
Я пытаюсь использовать ближайший образец и перейти по этой ссылке: https://developers.google.com/nearby/messages/android/pub-sub
и я хочу подписаться и опубликовать небольшой текст. поэтому я добавил:
private Message mActiveMessage;
private void publish(String message) {
Log.i(TAG, "Publishing message: " + message);
mActiveMessage = new Message(message.getBytes());
Nearby.Messages.publish(mGoogleApiClient, mActiveMessage);
}
и по нажатию кнопки:
btnPublish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
publish("Hello World");
}
});
и попробуйте получить его на другом телефоне на найденном:
public void onFound(final Message message) {
// Called when a new message is found.
mNearbyDevicesArrayAdapter.add(
DeviceMessage.fromNearbyMessage(message).getMessageBody());
String messageAsString = new String(message.getContent());
Log.d(TAG, "Found message: " + messageAsString);
Toast.makeText(getBaseContext(), messageAsString, Toast.LENGTH_LONG).show();
но я получаю ошибку:
E/AndroidRuntime: FATAL EXCEPTION: main
gms.nearby.messages.samples.nearbydevices, PID: 733
com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException:
Expected BEGIN_OBJECT but was STRING at line 1
я сделал что-то не так? потому что я не думаю, что мне нужно идти и анализировать это, как предложено здесь: GSON: ожидаемый BEGIN_OBJECT, но был STRING
Еще один вопрос про Nearby: можно ли использовать только Ультразвуковой для публичного текста?
Спасибо за ваше время.
1 ответ
Удалить эту строку:
mNearbyDevicesArrayAdapter.add(
DeviceMessage.fromNearbyMessage(message).getMessageBody());
DeviceMessage.fromNearbyMessage(message)
call предполагает, что байты сообщения являются JSON, и пытается его проанализировать, но опубликованное вами сообщение не является JSON.