Конвертировать объект в байтовый массив (чтобы отправить его через сокет). затем преобразовать его обратно - PullRequest
2 голосов
/ 17 августа 2011

У меня есть следующее определение класса:

public class Message {
     private String sender, text;

     public Message(String sender, String text) {
         this.sender = sender;
         this.text = text;
     }

}

Я хотел бы иметь возможность отправить экземпляр этого класса сообщений через разъем Bluetooth.Для этого его необходимо преобразовать в байт [].После того, как он был отправлен, мне нужно преобразовать его обратно в объект сообщения (на другой стороне сокета).Как мне этого добиться?

Ответы [ 3 ]

2 голосов
/ 17 августа 2011

Два возможных ответа Сериализуемый против Parcelable

Сериализуемый, относительно простой в реализации, но неэффективный с точки зрения памяти и ЦП

http://developer.android.com/reference/java/io/Serializable.html

Сортируемый более сложный для реализации, ноболее эффективный с точки зрения памяти и процессора

http://developer.android.com/reference/android/os/Parcelable.html

0 голосов
/ 17 августа 2011

Вы можете определить функцию, которая возвращает byte[] и просто вызвать ее, прежде чем отправлять по Bluetooth.Массив байтов может быть как { sendersize, textsize, sender, text }.Определите также функцию, которая отменяет процесс, и вызовите его с другой стороны.

0 голосов
/ 17 августа 2011

Посмотрите на сериализацию.

http://developer.android.com/reference/java/io/Serializable.html

...