
正常信号强度应该是-40 dbm ~ -85 dbm之间。
小于 -90 dbm 就很差了,几乎没法连接。
android中wifi分为5个等级,对应的图标是0格,1格,2格,3格,4格
那么对应的信号强度是多少呢?
根据wifimanager中的算法calculateSignalLevel可以算得:
0 rssi<=-100
1 (-100, -88]
2 (-88, -77]
3 (-66, -55]
4 rssi>=-55
import androidappActivity;
import androidbluetoothBluetoothAdapter;
import androidcontentContext;
import androidcontentIntent;
import androidnetwifiWifiInfo;
import androidnetwifiWifiManager;
import androidosBundle;
import androidwidgetTextView;
/
获取手机WIFI的MAC地址
@author 单红宇
/
public class GetmacipinfoActivity extends Activity {
/ Called when the activity is first created /
private static final int REQUEST_ENABLE_BT = 3;
private WifiManager mWifi;
private BluetoothAdapter bAdapt;
private String btMac;
private String WifiMac;
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
mWifi = (WifiManager) getSystemService(ContextWIFI_SERVICE);
if (!mWifiisWifiEnabled()) {
mWifisetWifiEnabled(true);
}
WifiInfo wifiInfo = mWifigetConnectionInfo();
bAdapt = BluetoothAdaptergetDefaultAdapter();
if (bAdapt != null) {
if (!bAdaptisEnabled()) {
Intent enBT = new Intent(BluetoothAdapterACTION_REQUEST_ENABLE);
startActivityForResult(enBT, REQUEST_ENABLE_BT);
}
btMac = bAdaptgetAddress();
} else {
btMac = "No Bluetooth Device!";
}
if ((WifiMac = wifiInfogetMacAddress()) == null) {
WifiMac = "No Wifi Device";
}
TextView mac = (TextView) findViewById(RidmacView);
macsetTextSize(16);
// 查看已经连接上的WIFI信息,在Android的SDK中为我们提供了一个叫做WifiInfo的对象,这个对象可以通过WifiManagergetConnectionInfo()来获取。WifiInfo中包含了当前连接中的相关信息。
// getBSSID() 获取BSSID属性
// getDetailedStateOf() 获取客户端的连通性
// getHiddenSSID() 获取SSID 是否被隐藏
// getIpAddress() 获取IP 地址
// getLinkSpeed() 获取连接的速度
// getMacAddress() 获取Mac 地址
// getRssi() 获取80211n 网络的信号
// getSSID() 获取SSID
// getSupplicanState() 获取具体客户端状态的信息
StringBuffer sb = new StringBuffer();
sbappend("\n获取BSSID属性(所连接的WIFI设备的MAC地址):" + wifiInfogetBSSID());
// sbappend("getDetailedStateOf() 获取客户端的连通性:");
sbappend("\n\n获取SSID 是否被隐藏:"+ wifiInfogetHiddenSSID());
sbappend("\n\n获取IP 地址:" + wifiInfogetIpAddress());
sbappend("\n\n获取连接的速度:" + wifiInfogetLinkSpeed());
sbappend("\n\n获取Mac 地址(手机本身网卡的MAC地址):" + WifiMac);
sbappend("\n\n获取80211n 网络的信号:" + wifiInfogetRssi());
sbappend("\n\n获取SSID(所连接的WIFI的网络名称):" + wifiInfogetSSID());
sbappend("\n\n获取具体客户端状态的信息:" + wifiInfogetSupplicantState());
macsetText("WIFI网络信息: " + sbtoString() + "\n\n蓝牙MAC: " + btMac);
}
}
看下这段代码或许对你有帮助!!
我在编程方面不行,但个人认为测量距离理论上仅仅能测量空旷场地下手机到设备的距离,一般室内墙壁反射和阻隔,测距必然不准,各种墙壁和地板的衰减程度也不同。
同时,wifi发射器类型的不同,其覆盖面积和信号的强度也会略有不同。
我认为根据具体环境,相关的参数比较多,能准确的测距可能较难实现。
以上就是关于wifi信号格数对应的信号强度值是多少全部的内容,包括:wifi信号格数对应的信号强度值是多少、android 如何获取同一WiFi下的所有连接终端、关于android中wifi的RSSi信号测距的问题···求大神指点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)