Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android:与PC桌面应用程序和远程mediaplayer控制器通信_Android_Http_Android Wifi_Remote Server - Fatal编程技术网

android:与PC桌面应用程序和远程mediaplayer控制器通信

android:与PC桌面应用程序和远程mediaplayer控制器通信,android,http,android-wifi,remote-server,Android,Http,Android Wifi,Remote Server,请不要对我生气。我有两个问题,我认为主题非常相似,所以我决定把它们合并成一个。我的应用程序在android上,它使用传感器进行一些计算。我正在数据库中存储搜索结果。我想做的是将我的数据从我的手机发送到我的桌面应用程序,同时还有一个数据库(点击按钮) 更准确地说,这里有一个例子:我的光传感器读取当前的光强度。假设它是1000勒克斯。现在,当我在android应用程序中单击我的按钮“发送”时,它会将该值发送到我的桌面应用程序数据库。该桌面应用程序将读取该值并将其显示给用户 可以通过WIFI吗?还是通

请不要对我生气。我有两个问题,我认为主题非常相似,所以我决定把它们合并成一个。我的应用程序在android上,它使用传感器进行一些计算。我正在数据库中存储搜索结果。我想做的是将我的数据从我的手机发送到我的桌面应用程序,同时还有一个数据库(点击按钮)

更准确地说,这里有一个例子:我的光传感器读取当前的光强度。假设它是1000勒克斯。现在,当我在android应用程序中单击我的按钮“发送”时,它会将该值发送到我的桌面应用程序数据库。该桌面应用程序将读取该值并将其显示给用户

可以通过WIFI吗?还是通过网络更好,这样我就不会受到距离的限制? android如何管理这种通信

我的第二个问题是,在我的电脑上控制媒体播放器是否和我说的类似

编辑:

我做了一些研究,发现了一个套接字教程。我试过了,就像在那里一样。所以我的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");
      }
   }
}

它仍然不起作用。我必须以某种方式设置我的网络吗?

您可以使用TCP套接字进行设置。许多语言都有Socket编程的实现,所以您“需要”用Java编写桌面应用程序(当然,这总是可能的!)

这将通过网络和本地wifi工作。您可以为本地wifi使用其他方法,例如UDP连接。您需要设置一个TCP服务器,并确保您具有访问权限等


可能有其他方法可以做到这一点,但这不是一个这么简单的任务要做

谢谢你的帮助。这是针对我的桌面应用程序的,但是我的android应用程序有什么用呢?这也适用于android吗?是的,同样的事情-如果你用Java编写应用程序,那么它可以使用套接字。然后它只使用你手机上的任何数据连接,比如wifi、3g连接。你找到答案了吗?您的编辑答案看起来正确。出了什么问题?