2

Androidデバイスの現在のWiFi状態の文字列表現を取得しようとしています。getWifiState()のメソッドを使用していWiFiManagerて、現在の状態に応じて整数が返されます。getWifiState()これは、整数を返すことになっているので、完全に理にかなっています。メソッドのドキュメントには、可能な戻り値が次の定数値のいずれかに変換されることが示されています。

  • 0 WIFI_STATE_DISABLING
  • 1 WIFI_STATE_DISABLED
  • 2 WIFI_STATE_ENABLING
  • 3 WIFI_STATE_ENABLED
  • 4 WIFI_STATE_UNKNOWN

から返された整数getWiFiState()を文字列表現に変換する簡単な方法はありますか?私は見てきましたgetIntExtraが、その使用法がわかりません。

4

2 に答える 2

4

私はあなたがすでに答えを受け入れたことを知っていますが、あなたが言ったように、それはもろくて維持するのが難しいので、あなたは投稿されたコードを使うべきではありません。そうなる理由はありません。

  public String getWifiStateStr() {
    switch (mWifiManager.getWifiState()) {
      case WifiManager.WIFI_STATE_DISABLING:
        return "disabling";
      case WifiManager.WIFI_STATE_DISABLED:
        return "disabled";
      case WifiManager.WIFI_STATE_ENABLING:
        return "enabling";
      case WifiManager.WIFI_STATE_ENABLED:
        return "enabled";
      case WifiManager.WIFI_STATE_UNKNOWN:
        return "unknown";
      default:
        return null;  //or whatever you want for an error string
    }
  }

これにより、定数割り当ての変更から保護され、6か月で読みやすくなります。エラー文字列を正しく処理すると仮定すると、許可される戻り値の数が増えた場合にバグが制限されます。

Androidのドキュメントで「定数」としてリストされている変数が表示されている場合、それはpublicstaticfinalとして宣言されていることを意味します。ClassName.CONST_VARIABLE_NAMEとしてアクセスできます。これらの変数はすべて大文字にするのが慣例ですが、言語の要件ではありません。一般的に言って、そのようなメンバーの実際の値を使用する必要はありません。何か奇妙なことをする必要がない限り、常にメンバー名でアクセスする必要があります。

于 2010-06-01T03:43:43.103 に答える
0

ちょうどどうですか:

  public String getWifiStateStr() {
    switch (mWifiManager.getWifiState()) {
      case 0:
        return "disabling";
      case 1:
        return "disabled";
      case 2:
        return "enabling";
      case 3:
        return "enabled";
      default:
        return "unknown";
    }
  }
于 2010-05-31T20:29:53.700 に答える