歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 判斷Adndroid手機的網絡連接狀態

判斷Adndroid手機的網絡連接狀態

日期:2017/3/1 10:29:52   编辑:Linux編程

判斷手機的網絡狀態,需要使用ConnectivityManager。ConnectivityManager主要管理和網絡連接相關的操作 。 相關的TelephonyManager則管理和手機、運營商等的相關信息;WifiManager則管理和wifi相關的信息。NetworkInfo類包含了對wifi和mobile兩種網絡模式連接的詳細描述,通過其getState()方法獲取的State對象則代表著連接成功與否等狀態。

Java代碼:

  1. package com.lenovo.test.network;
  2. import Android.app.Activity;
  3. import android.app.AlertDialog;
  4. import android.app.AlertDialog.Builder;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.net.ConnectivityManager;
  9. import android.net.NetworkInfo.State;
  10. import android.os.Bundle;
  11. import android.provider.Settings;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.TextView;
  15. public class JudgeNetworkActivity extends Activity {
  16. /** Called when the activity is first created. */
  17. private Button mButton = null;
  18. private TextView mTextView = null;
  19. @Override
  20. public void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.main);
  23. mButton = (Button) findViewById(R.id.mbutton);
  24. mTextView = (TextView) findViewById(R.id.mtv);
  25. final Builder builder = new AlertDialog.Builder(this);
  26. mButton.setOnClickListener(new View.OnClickListener() {
  27. public void onClick(View v) {
  28. // TODO Auto-generated method stub
  29. ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  30. // mobile 3G Data Network
  31. State mobile = conMan.getNetworkInfo(
  32. ConnectivityManager.TYPE_MOBILE).getState();
  33. // wifi
  34. State wifi = conMan.getNetworkInfo(
  35. ConnectivityManager.TYPE_WIFI).getState();
  36. mTextView.setText("Moble Network:" + mobile.toString() + "\n"
  37. + "WIFI Network:" + wifi.toString());
  38. // 如果3G網絡和wifi網絡都未連接,且不是處於正在連接狀態 則進入Network Setting界面 由用戶配置網絡連接
  39. if (!(mobile == State.CONNECTED || mobile == State.CONNECTING
  40. || wifi == State.CONNECTED || wifi == State.CONNECTING)) {
  41. builder.setTitle("Message")
  42. .setMessage("沒有可用的網絡,請設置有效的網絡連接!")
  43. .setNegativeButton("確定",
  44. new DialogInterface.OnClickListener() {
  45. public void onClick(
  46. DialogInterface dialog,
  47. int which) {
  48. startActivity(new Intent(
  49. Settings.ACTION_WIRELESS_SETTINGS));// 進入無線網絡配置界面
  50. // startActivity(new
  51. // Intent(Settings.ACTION_WIFI_SETTINGS));
  52. // 進入手機中的wifi網絡設置界面
  53. }
  54. }).show();
  55. }
  56. }
  57. });
  58. }
  59. }

在AndroidManifest.xml裡添加權限:

  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

運行結果:

Copyright © Linux教程網 All Rights Reserved