Android - ConnectivityManager.EXTRA_NETWORK_INFO已弃用

4

我正在创建一个广播接收器来监听Wi-Fi连接的变化:

registerReceiver(new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {

        String action = intent.getAction();
        if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {

            NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); // deprecated

            // Get connectivity details from networkInfo...

        }

    }

}, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

然而,ConnectivityManager.EXTRA_NETWORK_INFO已被弃用,那么如何获取NetworkInfo对象呢?


请查看此链接:https://dev59.com/rVoV5IYBdhLWcg3wTdTN - ak sacha
1个回答

8
您可以使用 getActiveNetworkInfo();
ConnectivityManager connectivityManager = (ConnectivityManager) myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();

谢谢,是的,那就是我目前正在做的。我只是想知道是否有一种方法可以直接从传递给我的BroadcastReceiver的onReceive(...)方法的意图中获取一个NetworkInfo对象,但似乎不行。 - ban-geoengineering
你需要通过ConnectivityManager从上下文中获取它。 - Ganesh AB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接