Android - 判断SIM卡状态

jopen 4年前

Android判断SIM卡状态, 是否插入SIM卡.
例如: 根据SIM判断优先使用的网络类型.

SIM卡状态

    /** * 判断是否包含SIM卡 * * @return 状态 */      public static boolean hasSimCard() {          Context context = App.getAppContext();          TelephonyManager telMgr = (TelephonyManager)                  context.getSystemService(Context.TELEPHONY_SERVICE);          int simState = telMgr.getSimState();          boolean result = true;          switch (simState) {              case TelephonyManager.SIM_STATE_ABSENT:                  result = false; // 没有SIM卡                  break;              case TelephonyManager.SIM_STATE_UNKNOWN:                  result = false;                  break;          }          Log.d(TAG, result ? "有SIM卡" : "无SIM卡");          return result;      }

全部状态

        TelephonyManager telMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);          int simState = telMgr.getSimState();          switch (simState) {              case TelephonyManager.SIM_STATE_ABSENT:                  // do something                  break;              case TelephonyManager.SIM_STATE_NETWORK_LOCKED:                  // do something                  break;              case TelephonyManager.SIM_STATE_PIN_REQUIRED:                  // do something                  break;              case TelephonyManager.SIM_STATE_PUK_REQUIRED:                  // do something                  break;              case TelephonyManager.SIM_STATE_READY:                  // do something                  break;              case TelephonyManager.SIM_STATE_UNKNOWN:                  // do something                  break;          }

来自: http://blog.csdn.net//caroline_wendy/article/details/48468681