我想通过Wi-Fi直2台的设备之间传输文件。
我想做同样的事情在WifiDirectDemo,但我不能从群主数据传输到其他设备,所以我尝试这样的:每次当点击连接设备中的一个,其他的设备设置为组所有人,每个连接上谁请求连接的设备永远是客户端,并且可以发送数据。
这里的问题是,Android的总是记得第一组创建,因此它的组所有者。 换句话说,我只是做了第一次,除非我去设置和忘记第一连接创建的组工作。
我知道,通过使用断开按钮,在Wi-Fi组被删除,但Android系统把它放在记忆组,并使用其设置(群组所有者协商),当一个新的连接将被做。
我试过的第二件事是创建一个ServerSocket
每个设备(另一个端口),所以这样两个组所有者和其他设备将在同一时间将客户端和服务器。 我不知道,如果组所有者可以设置为一个客户端,但我不能创建一个ServerSocket
两个设备上。 这里是我的代码:
<pre>
@Override
public void onConnectionInfoAvailable(final WifiP2pInfo info) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
this.info = info;
this.getView().setVisibility(View.VISIBLE);
// The owner IP is now known.
TextView view = (TextView) mContentView.findViewById(R.id.group_owner);
view.setText( getResources().getString(R.string.group_owner_text)
+ ((info.isGroupOwner == true) ? getResources().getString(R.string.yes)
: getResources().getString(R.string.no)));
// InetAddress from WifiP2pInfo struct.
view = (TextView) mContentView.findViewById(R.id.device_info);
view.setText("Group Owner IP - " + info.groupOwnerAddress.getHostAddress());
// After the group negotiation, we assign the group owner as the file
// server. The file server is single threaded, single connection server
// socket.
if (info.groupFormed && info.isGroupOwner) {
new FileServerAsyncTask(getActivity(), mContentView.findViewById(R.id.status_text),8988)
.execute();
mContentView.findViewById(R.id.btn_start_client).setVisibility(View.VISIBLE);
Log.d(WiFiDirectActivity.TAG, "serveur8988cree");
} else if (info.groupFormed) {
// The other device acts as the client. In this case, we enable the
// Get file button.
// In this case we create a server socket on another port
new FileServerAsyncTask(getActivity(), mContentView.findViewById(R.id.status_text),8987)
.execute();
mContentView.findViewById(R.id.btn_start_client).setVisibility(View.VISIBLE);
Log.d(WiFiDirectActivity.TAG, "serveur8987cree");
((TextView) mContentView.findViewById(R.id.status_text)).setText(getResources()
.getString(R.string.client_text));
}
</pre>
感谢帮助。