Android中的设备发现
我正在尝试创建一个应用程序,可以找到局域网中的所有设备。我已经能够做到这一点,通过ping的IP范围。还有其他方法可以做到这一点吗Android中的设备发现,android,networking,android-wifi,network-scan,Android,Networking,Android Wifi,Network Scan,我正在尝试创建一个应用程序,可以找到局域网中的所有设备。我已经能够做到这一点,通过ping的IP范围。还有其他方法可以做到这一点吗 是否可以通过在android中监听传入的数据包来检测同一网络中的设备?以下代码将搜索设备并将其信息放入列表中:- //an array list of DeviceList type, which will take the info from getter setters ArrayList<DeviceList> Dlist = n
是否可以通过在android中监听传入的数据包来检测同一网络中的设备?以下代码将搜索设备并将其信息放入列表中:-
//an array list of DeviceList type, which will take the info from getter setters
ArrayList<DeviceList> Dlist = new ArrayList<DeviceInfo>();
wifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if(wifi.isWifiEnabled()){
List<ScanResult>wifilist =wifi.getScanResults();
if(wifilist != null){
for(int m = 0; m < wifilist.size(); m++)
{
int signallevel = WifiManager.calculateSignalLevel(wifilist.get(m).level,20);
int signalStrength=(signallevel*100)/20;
DeviceList dInfo = new DeviceList();
dInfo.setDeviceName((wifilist.get(m).SSID));
dInfo.setSignalStrength(String.valueOf((signalStrength+"%")));
dInfo.setDeviceType("WiFi");
Dlist.add(dInfo);
}
}
这取决于您希望对设备执行的操作 要发现与UPNP兼容的设备,可以使用库 这将返回可用设备、说明和服务的列表
ping IP范围将仅显示响应ping的设备,这可能取决于网络设置。请查看感谢您的响应。上面的代码给出了所有可用wifi网络的列表。但我想获取连接到我的设备所连接的同一网络\路由器的所有设备。
public class DeviceList {
String DeviceName="";
String SignalStrength="";
String deviceType="";
public String getDeviceName() {
return DeviceName;
}
public void setDeviceName(String deviceName) {
DeviceName = deviceName;
}
public String getSignalStrength() {
return SignalStrength;
}
public void setSignalStrength(String signalStrength) {
SignalStrength = signalStrength;
}
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
}