作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的代码有问题。我正在学习教程,它使用的是旧 API。
这是我的代码:
package com.flax.security;
import android.content.Context;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ConnectivityManager conman = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
TextView tv = (TextView) findViewById(R.id.mytextview);
boolean wifi = conman.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
if(wifi) {
tv.setText("This wifi is on!");
} else {
tv.setText("The wifi is off!");
}
}
}
我的错误是说 getNetworkInfo
已经被弃用了。我该如何解决这个问题?我是 Android 开发的新手。
最佳答案
getNetworkInfo 的 javadoc说:
This method was deprecated in API level 23. This method does not support multiple connected networks of the same type. Use getAllNetworks() and getNetworkInfo(android.net.Network) instead.
因此您可以做的是在运行时检查 API 级别是否足够高以支持这两种方法,然后使用它们代替 getNetworkInfo。
您没有义务停止使用已弃用的 API。但考虑停止是个好主意。
您可以使用 IDE 来 suppress如果您只是不想看到它,也会收到警告。
关于android - getNetworkInfo() 在使用 API 23 的 Android Studio 中被弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35354102/
我是一名优秀的程序员,十分优秀!