Я создаю приложение SMS-коммуникации между моим телефоном и компьютером.
У меня есть проблема, связанная с объектным классом, который предполагает передачу через сокет UDP.
Мой объект называется Message andон реализует сериализуемый.
У меня есть проект Java с приложением сервера и проект Android с приложением клиента.Моя проблема в том, что я не могу внедрить Message.java в проект android из проекта java, иначе я должен сделать копию этого класса в обоих проектах.Затем я получаю эту ошибку: Исключение в потоке "main" java.lang.ClassNotFoundException: AndroidApp.Message
Это мое приложение для Android:
@Override
public void onReceive(Context context, Intent intent){
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle != null){
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
Message message = new Message(msgs[i].getOriginatingAddress(), msgs[i].getMessageBody().toString());
try {
sendMessageToServer(message);
}catch(Exception e);
private void sendMessageToServer(Message m) throws IOException {
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
ObjectOutput oo = new ObjectOutputStream(bStream);
oo.writeObject(m);
oo.close();
byte[] serializedMessage = bStream.toByteArray();
InetAddress IPAddress = InetAddress.getByName("10.0.2.2");
DatagramSocket clientSocket = new DatagramSocket();
DatagramPacket sendPacket = new DatagramPacket(serializedMessage, serializedMessage.length, IPAddress, 8080);
clientSocket.send(sendPacket);
clientSocket.close();
}
Мое сообщениекласс - это просто сообщение (String phoneNum, String msg).
Мой сервер выглядит так:
public class Server {
public static void main(String args[]) throws Exception{
DatagramSocket serverSocket = new DatagramSocket(8080);
byte[] receiveData = new byte[100000];
while(true){
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
ObjectInputStream iStream = new ObjectInputStream(new ByteArrayInputStream(receivePacket.getData()));
Message message = (Message) iStream.readObject();
iStream.close();
System.out.println("RECEIVED FROM: " + message.getPhone() + ": " + message.getMessage());
}
}