ConnectivityManager相關資料:https://blog.csdn.net/jason_wzn/article/details/71131544android
首先須要在AndroidManifest.xml
中聲明網絡相關的權限:api
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
public class MainActivity extends AppCompatActivity { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkRequest.Builder builder = new NetworkRequest.Builder(); NetworkRequest request = builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) .build(); cm.requestNetwork(request, new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { Log.v("TAG", "onAvailable(): network +++++++++++++++++++" + network); // do something NetworkInfo.State state = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); // if(NetworkInfo.State.CONNECTED==state){ // Log.i("通知", "GPRS網絡已鏈接"); // } state = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); if(NetworkInfo.State.CONNECTED==state){ Log.i("通知", "WIFI網絡已鏈接"); }else { Log.i("通知", "WIFI網絡已斷開"); } } }); }
// // 跳轉到無線網絡設置界面 //// startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS)); // // 跳轉到無限wifi網絡設置界面 //// startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));