2016-02-12 61 views
0

我的代码有问题。我正在学习一个教程,它使用了一个旧的API。getNetworkInfo()在使用API​​的Android Studio中不推荐使用23

这里是我的代码:

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已经depracated。我该如何解决这个问题?我是Android开发新手。

回答

2

getNetworkInfo的Javadoc说:

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

因此,您可以做的是在运行时检查API级别是否足够高以支持这两种方法,并使用它们代替getNetworkInfo。

您决不会停止使用已弃用的API。但考虑停止是个好主意。

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

相关问题