我在pax a920设备(sdk版本22)中使用android棒棒糖。生成时,我收到如下警告消息:
NetworkInfo in android.net has been deprecated WifiConfiguration in android.net has been deprecated
我很困惑,因为我在中看到了sdk 22的示例 C:\Users\{YOUR_ACCOUNT}\AppData\Local\Android\Sdk\sources\android-22\com\android\connectivitymanagertest
使用该方法访问wifi,但为什么它看起来不受欢迎?
什么方法与替换不推荐的方法相同?
public boolean isWifiConnected() {
boolean isWifiConnected = false;
try {
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo != null) {
isWifiConnected = networkInfo.getState() == CONNECTED;
}
Log.i(TAG, "wifi adapter is connected? " + isWifiConnected);
} catch (Exception ex) {
ex.printStackTrace();
}
return isWifiConnected;
}
public void removeNetwork() {
List<WifiConfiguration> wifiCfgList = wifiManager.getConfiguredNetworks();
if (wifiCfgList.size() > 0) {
for (WifiConfiguration item : wifiCfgList) {
if (item != null) {
wifiManager.removeNetwork(item.networkId);
wifiManager.saveConfiguration();
}
}
}
}
谢谢你的指点。
1条答案
按热度按时间z9ju0rcb1#
欢迎来到stackoverflow!
不推荐使用的类已使用
ConnectivityManager
系统服务和NetworkCallbacks
: https://developer.android.com/training/monitoring-device-state/connectivity-status-type尽管官方代码示例演示了如何获取
NetworkInfo
从…起ConnectivityManager
有一个突出显示的注解:下面是一个示例代码,说明如何获取当前网络状态,以及如何随着时间的推移接收更新。这是一个部分精简的解决方案,我将在生产中使用。如果将其与rxjava或rxkotlin连接,则可以创建一个可观察对象,该对象将保存网络状态,并在调用networkcallback的重写方法时进行更新。
关于java的注意事项:公共类级别的变量是为了简洁而公开的。相反,我会为这些变量创建一些getter来访问这些变量背后的值。
请随意提问。
JAVA
Kotlin
开始接收网络状态更新呼叫
resumeListeningNetworkChanges
停止pauseListeningNetworkChanges
分别地