私は特定のアクションを実行する前に、ユーザーがどのWifiネットワークに接続しているかを特定する必要があるアンドロイドプログラムを開発中です。基本的にこの文が真の権利であるかの場合だけでSSID名を返すことになっているストリングがequalsを使用して実行されていないが、作品が含まれている場合
public String isConectedToPrivateNet(StringBuilder ssid) {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
ssid.replace(0, ssid.length(), wifiInfo.getSSID());
Log.e("Data(b4 iF): ", ssid.toString());
if(ssid.toString().equals("ACHILLES 101010")) {
Log.e("Data (iN iF): ", ssid.toString());
}else {
ssid.replace(0, ssid.length(), "DIDN'T START");
}
return ssid.toString();
}
:これは私がこれを達成するために実行するコードにありますか?しかし、そうではなく、代わりに "DID NOT START"を返します。私のログを読むと、「データ(b4 if):」はSSIDが「ACHILLES 101010」であることを示しています。したがって、if文はtrueに評価する必要がありますが、なぜそうしないのでしょうか?
ここで興味深いのは次のとおりです。.equals()を.contains()に置き換えると、if文ブロックのコードが完全に実行され、SSIDが返されます。なぜこれはそうですか?
いくつかの注意事項*:StringBuilderのは、ここに空であるとして渡されますが、それの宣言と初期化
public StringBuilder ssid = new StringBuilder("");
は、私はまたにStringBufferを使用することを試みたが、同じことが起き*です。
コピーは、logcatを隠し文字を表示するものに貼り付けます。 –
@ cricket_007私はその人を試みましたが、隠された文字はありません。私はこのツールを使用しました:[show hidden](http://www.online-toolz.com/tools/string-functions.php#)。ありがとう –