2016-02-12 65 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警告。

相關問題