0

SSID の取得に関して複数の人から質問がありましたが、それらはすべて部分的にしか機能しません。Android API wifiInfo.getSSID() によると、文字列を返す必要がありますが、何をしても if ステートメントは false を返します。自分の電話が「DieKantankys」に接続されているかどうかを確認したい

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();

    //Log.d("wifiInfo", wifiInfo.toString());
    //Log.d("NetworkId",wifiInfo.getNetworkId());

    if(wifiInfo.getSSID()=="DieKantankys"){
        setContentView(R.layout.group_choose_activity);
    }else{
        setContentView(R.layout.not_connected_to_scouting_wifi_error);
    }

}

私は何を間違っていますか?

4

1 に答える 1

4

しかし、何をしても if ステートメントは false を返します。

最初に、文字列を比較するときは、参照ではなく値を比較するため、equals()を使用する必要があります。

if (wifiInfo.getSSID().equals("DieKantankys")) {
   // do your stuff
}

そのため、あなたにはうまくいきませんでした。String 参照と比較しているため、現在のシナリオは常にfalseを返します==

注: equalsIgnoreCase()を使用すると非常に「便利」な場合があります。このメソッドを使用すると、比較で大文字と小文字が区別されません。

于 2014-04-13T19:47:41.873 に答える