问题描述
按网络功能,我的意思是-是否支持NR,LTE,CDMA,umts,GSM?是否支持wifi /移动数据? 我只想知道该设备是否能够执行上述操作。我不需要知道当前的活动网络内容。
https://developer.android.com/reference/android/net/NetworkCapabilities-此api几乎没有帮助,但不能完全满足我的需求。
我还想知道我的设备是否具有wifi /蓝牙/蜂窝功能?
解决方法
我一直在所有项目中使用这个功能强大的库:
implementation 'com.blankj:utilcodex:1.29.0'
用法:
LogUtils.i("NetworkUtils isConnect = %b",NetworkUtils.isConnected());
LogUtils.i("NetworkUtils isAvailableByPing = %b",NetworkUtils.isAvailableByPing());
LogUtils.i("NetworkUtils isWifiEnable = %b",NetworkUtils.getWifiEnabled());
LogUtils.i("NetworkUtils isWifiConnected = %b",NetworkUtils.isWifiConnected());
LogUtils.i("NetworkUtils is4G = %b",NetworkUtils.is4G());
LogUtils.i("NetworkUtils getNetworkType = %s",NetworkUtils.getNetworkType());
要获取更多可访问性,请检查PhoneUtils
和NetworkUtils
类:
https://github.com/Blankj/AndroidUtilCode
,我找到了一种使用Packetmanager检测硬件功能的解决方案。 例如:
getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI);
这将帮助用户知道设备是否具有某些功能。