質問

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 しかし、その使用がわからない。

役に立ちましたか?

解決

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

  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ドキュメントに「定数」としてリストされている変数が表示されると、パブリックスタティックファイナルと宣言されていることがわかります。 classname.const_variable_nameとしてアクセスできます。これらの変数がすべてのキャップにあることは慣習ですが、言語要件ではありません。一般的に言えば、そのようなメンバーの実際の値を使用する必要はありません。奇妙なことをする必要がない限り、常にメンバー名でアクセスする必要があります。

他のヒント

ただどうですか:

  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";
    }
  }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top