gpt4 book ai didi

android - Android 中的设备发现

转载 作者:太空狗 更新时间:2023-10-29 14:16:58 25 4
gpt4 key购买 nike

我正在尝试创建一个可以找到局域网中所有设备的应用程序。我已经能够通过 ping IP 范围来做到这一点。还有其他方法可以做到这一点吗?

是否可以通过监听 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);
}
}

为此你需要一些 getter setter。您可以将它们添加到不同的类中,如下所示:-

 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;
}
}

关于android - Android 中的设备发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com