使用API​​ 23在Android Studio中弃用了getNetworkInfo()

时间:2016-02-12 03:01:47

标签: android android-studio

我的代码中存在问题。我正在按照教程进行操作,并使用旧的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开发的新手。

1 个答案:

答案 0 :(得分:3)

getNetworkInfo的javadoc说:

  

此方法在API级别23中已弃用。此方法不允许   支持相同类型的多个连接网络。使用   改为使用getAllNetworks()和getNetworkInfo(android.net.Network)。

所以你可以做的是在运行时检查API级别是否足够高以支持这两种方法,并使用它们而不是getNetworkInfo。

您无需停止使用已弃用的API。但考虑停止是一个好主意。

如果您不想看到它,也可以使用IDE suppress警告。