我所说的网络功能是指支持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);
这将帮助用户知道设备是否能够实现某些功能。