1.现获取wifi管理器 以下是我测试的代码
实现了 获取到bssid 这个是感觉是wifi 唯一值,测试了几个wifi 连接同一个wifi的值是一样的
public class MainActivity extends AppCompatActivity {
public String TAG = "yangdepeng";
public TextView mTextView;
private WifiManager mWifiManager;// wifi 管理器
private WifiInfo mWifiInfo;//wifi详情信息
@SuppressLint({"HardwareIds", "SetTextI18n"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.mTextView);
//获取管理器
mWifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//判断是否wifi打开
assert mWifiManager != null;//java 8 及以上特有的判断方式
Log.e(TAG, "isWifiEnabled = " + mWifiManager.isWifiEnabled());
//
Log.e(TAG, "getWifiState = " + mWifiManager.getWifiState());
//获取相关的wifi信息
mWifiInfo = mWifiManager.getConnectionInfo();
Log.e(TAG, "getConnectionInfo = " + mWifiInfo.toString());
//wifi名称
Log.e(TAG, "getSSID = " + mWifiInfo.getSSID());
//wifi 获取BSSID地址。
Log.e(TAG, "getBSSID = " + mWifiInfo.getBSSID());
//NetworkId 获取网络ID。
Log.e(TAG, "getNetworkId = " + mWifiInfo.getNetworkId());
//getMacAddress MAC地址
Log.e(TAG, "getMacAddress = " + mWifiInfo.getMacAddress());
//获取IP地址.4字节Int,XXX.XXX.XXX.XXX每个XXX为一个字节 1862314176
Log.e(TAG, "getIpAddress = " + mWifiInfo.getIpAddress());
//获取ssid 8.0至9.0 方法 获取的是名称
ConnectivityManager ctm = (ConnectivityManager) this.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
assert ctm != null;
NetworkInfo networkInfo = ctm.getActiveNetworkInfo();
assert networkInfo != null;
String ssid = networkInfo.getExtraInfo();
Log.e(TAG, "ConnectivityManager ssid = " + ssid);
}
@SuppressLint("SetTextI18n")
@Override
protected void onResume() {
super.onResume();
//输出数据,需要获取
mWifiInfo = mWifiManager.getConnectionInfo();
mTextView.setText("mWifiInfo.getBSSID() = "+mWifiInfo.getBSSID());
}
}
以下是权限在8.0以上gps定位权限必须开,不然会出现bssid出现不了情况,以下情况这个我就没了解了,开了就没问题了9.0手机也测试过了
<!--联网-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 网络配置-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 获取WIFI信息状态的权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--网络状态改变权限-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 8.0以上 wifi获取Bssid问题 定位权限-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
就以上这些代码了我另外给你打包了Apk你们可以下载测试一下,为期为半年下时间从今天起,另外demo我也上传
demo地址:可在我的资源中找到 (南极的松树),不用看了资源下载要五分不建议下载,直接邮件联系发你们,无语到一个简单demo定义居然要五分下载,差评的算法