-3

我想编写一个应用程序来在同一个 wifi 网络上的 2 个 android 设备之间传输数据,就像有一个共享文件夹一样。

我怎样才能做到这一点?

谢谢

编辑(我的解决方案):

我的服务器等待请求

private boolean startServer() {
    try {
        server = new ServerSocket(port);
    } catch (IOException ex) {
        ex.printStackTrace();
        return false;
    }
    return true;
}

public void runServer() {
    while (this.go) {
        try {
            Log.d("BurgerClub", "Server in attesa di richieste");
            Socket s1 = server.accept();

            OutputStream s1out = s1.getOutputStream();
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
                    s1out));

            BufferedReader br = new BufferedReader(new FileReader(this.path));
            String counter = br.readLine();
            counter = counter != null ? counter : "000";

            br.close();
            bw.write(counter);

            bw.close();
            s1.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

我的客户(可运行对象)

public void run() {

    try {

        this.openConnection();

        // Se il socket è connesso
        if( !this.s1.isClosed() ) {

            InputStream is = this.s1.getInputStream();
            BufferedReader dis = new BufferedReader(new InputStreamReader(is));

            line = dis.readLine();

            if( !this.previousCounter.equals(line.trim()) ) {
                ((BurgerClub_MonitorActivity) counterContext).runOnUiThread(new Runnable() {  
                    @Override
                    public void run() {
                        TextView edit = (TextView)(((BurgerClub_MonitorActivity) counterContext).findViewById(R.id.textActionCounter));
                        edit.setText(line);
                    }
                });

                this.previousCounter = line.trim();
            }

            dis.close();
        }
    } catch (ConnectException connExc) {
        connExc.printStackTrace();
    } catch (IOException ex) {
        ex.printStackTrace();
    } catch (Throwable ex) {
        ex.printStackTrace();
    }
4

2 回答 2

3

一台设备需要充当服务器,而另一台设备将作为客户端。

基本流程需要是这样的:

  1. 服务器设备打开一个套接字并监听它。
  2. 服务器设备广播它正在侦听的本地 IP 和端口。
  3. 客户端设备接收广播并启动连接。
  4. 执行数据传输。
于 2013-09-02T13:06:42.913 回答
0

阅读有关 NFC(近场通信)的信息

http://developer.android.com/guide/topics/connectivity/nfc/index.html

于 2013-09-02T13:29:40.003 回答