आप निम्न पुस्तकालय LipeRMI
यहाँ उपयोग कर सकते हैं एक Android ग्राहक LipeRMI के माध्यम से जावा सर्वर के साथ बातचीत का एक उदाहरण है। जावा एप्लिकेशन के लिए निम्नलिखित 2 कक्षाएं और इंटरफ़ेस बनाएं।
//TestService.java
package test.common;
public interface TestService {
public String getResponse(String data);
}
//TestServer.java
import java.io.IOException;
import java.net.Socket;
import test.common.TestService;
import lipermi.exception.LipeRMIException;
import lipermi.handler.CallHandler;
import lipermi.net.IServerListener;
import lipermi.net.Server;
public class TestServer implements TestService {
public TestServer() {
try {
CallHandler callHandler = new CallHandler();
callHandler.registerGlobal(TestService.class, this);
Server server = new Server();
server.bind(7777, callHandler);
server.addServerListener(new IServerListener() {
@Override
public void clientDisconnected(Socket socket) {
System.out.println("Client Disconnected: " + socket.getInetAddress());
}
@Override
public void clientConnected(Socket socket) {
System.out.println("Client Connected: " + socket.getInetAddress());
}
});
System.out.println("Server Listening");
} catch (LipeRMIException | IOException e) {
e.printStackTrace();
}
}
@Override
public String getResponse(String data) {
System.out.println("getResponse called");
return "Your data: " + data;
}
}
//TestMain.java
public class TestMain {
public static void main(String[] args) {
TestServer testServer = new TestServer();
}
}
एंड्रॉयड ग्राहक:
//MainActivity.java
package com.example.lipermidemoandroidclient;
import java.io.IOException;
import test.common.TestService;
import lipermi.handler.CallHandler;
import lipermi.net.Client;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Looper;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private String serverIP = "192.168.1.231";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnGet = (Button) findViewById(R.id.btnGet);
btnGet.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
new Conn().execute();
}
});
}
class Conn extends AsyncTask<Void, Void, MainActivity> {
@Override
protected MainActivity doInBackground(Void... params) {
Looper.prepare();
try {
CallHandler callHandler = new CallHandler();
Client client = new Client(serverIP, 7777, callHandler);
TestService testService = (TestService) client.getGlobal(TestService.class);
String msg = testService.getResponse("qwe");
//Toast.makeText(MainActivity.this, testService.getResponse("abc"), Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
client.close();
} catch (IOException e) {
e.printStackTrace();
}
Looper.loop();
return null;
}
}
}
//TestService.java
package test.common;
public interface TestService {
public String getResponse(String data);
}
दोनों परियोजनाओं के लिए LipeRMI पुस्तकालय जोड़े
सुनिश्चित करें कि आप एंड्रॉयड परियोजना में इंटरनेट अनुमति जोड़ें
यह भी सुनिश्चित सुनिश्चित करें कि आप TestService.java में रखा फ़ाइल है उदाहरण के लिए दोनों स्थानों पर एक ही पैकेज नाम। test.common पैकेज यहाँ
एंड्रॉइड मेनएक्टिविटी.जेवा में सर्वर कोड वैरिएबल का मूल्य जावा कोड चलाने वाली मशीन के आईपी में भी बदलें।
मुझे लगता है कि आप जिस पुस्तकालय का उपयोग कर रहे हैं वह dalvik vm समर्थित नहीं है। इस पर –
और अधिक है: -http: //stackoverflow.com/questions/5321906/how-to-find-the-jar-of-java-rmi-package –
मैंने इस स्टैक [पोस्ट] पर इसी तरह के प्रश्न का उत्तर दिया (http://stackoverflow.com/questions/5900157/is-it-possible-to-import-java-rmi-in-android/24943260#24943260), अगर आपको –