android wifi 获取 getBssiD

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定义居然要五分下载,差评的算法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值