我是Android应用程序开发的新手,我想构建一个使用wifi连接到其他设备(不是移动设备)的应用程序,并将一些数据从我的手机发送到设备并从其他设备接收一些数据。< / p>
我在本地网络中拥有的内容:
我需要什么:
答案 0 :(得分:0)
我的问题对我来说也不是很清楚。但根据我的理解,您希望在移动设备上列出一些支持Wi-Fi的设备。然后连接其中一个&amp;最后与他们沟通。
要列出您必须实现以下代码的所有访问点。
private final BroadcastReceiver mWifiScanReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context c, Intent intent) {
String action = intent.getAction();
if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
List<ScanResult> scanResults = mainWifiObj.getScanResults();
mScannedNetworksAdapter.clear();
listView_Access_point.clearChoices();
if (scanResults != null) {
for (ScanResult result : scanResults) {
mScannedNetworksAdapter.add(result)
}
}
listView_Access_point.setAdapter(mScannedNetworksAdapter);
}
}
};
现在列出所有Wi-Fi接入点后,您必须单击其中一个才能连接。为此,您必须实现OnItemClickListener&amp;然后重写onItemclick()。请参阅下面的代码。
@Override
public void onItemClick(AdapterView<?> parent, View arg1, int position, long arg3) {
ScanResult result = (ScanResult) parent.getItemAtPosition(position);
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + result.SSID + "\"";
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
if(list!=null){
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + result.SSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
}
}
然后你必须实现一个BroadcastReceiver,它告诉接入点是否连接成功。
private final BroadcastReceiver mWifiConnectionEstablished = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent intent) {
String action = intent.getAction();
if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (NetworkInfo.State.CONNECTED.equals(nwInfo.getState()) && nwInfo.isConnected()) {
//The connection is established. Now do your stuff here
}
}
}
};
最后有几种沟通方法。其中之一是套接字通信。你将在谷歌中获得几个关于android中套接字通信的例子。