更准确地说,这是一个例子:我的光传感器读取当前的光强度。可以说它是1000lux。现在,当我在我的Android应用程序中单击“发送”按钮时,它会将此值发送到我的桌面应用程序数据库。该桌面应用程序将读取该值并将其显示给用户。
可以通过WIFI吗?或通过网络更好,所以我不会受到距离的限制? android如何管理这种通信?
我的第二个问题是,如果控制我电脑上的媒体播放器与我说的相似。
编辑:
我做了一些研究,发现了一个Socket教程。我试过它就像在那里一样。所以我在我的Android应用程序中有这个:
public class Client extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client);
Client myCli = new Client();
try {
myCli.run();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_client, menu);
return true;
}
public void run() throws Exception {
Socket mySkt = new Socket("192.168.1.6", 9999);
PrintStream myPS = new PrintStream(mySkt.getOutputStream());
myPS.println("Hello server");
BufferedReader myBR = new BufferedReader
(new InputStreamReader(mySkt.getInputStream()));
}
}
这在netBeans中:
//Author: WarLordTech
//Website: http://www.youtube.com/user/WarLordTech
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws Exception{
Server myServ = new Server();
myServ.run();
}
public void run() throws Exception{
ServerSocket mySS = new ServerSocket(9999);
Socket SS_accept = mySS.accept();
BufferedReader SS_BF= new BufferedReader(new InputStreamReader
(SS_accept.getInputStream()));
String temp = SS_BF.readLine();
System.out.println(temp);
if (temp!=null) {
PrintStream SSPS = new PrintStream(SS_accept.getOutputStream());
SSPS.println("Got something");
}
}
}
它仍然不起作用。我必须以某种方式设置我的网络吗?
答案 0 :(得分:0)
您可以使用TCP套接字执行此操作。许多语言都有Socket编程的实现,所以你“需要”用Java编写桌面应用程序(当然这总是可行的!)。
这将适用于网络和本地wifi。您可以使用其他方法进行本地wifi,例如UDP连接。您需要设置TCP服务器并确保您具有访问权限等。
可能有其他方法可以做到这一点,但这不是一项微不足道的任务!