0
私はアンドロイドシェルコマンドを使用してサブネットマスクを取得する方法があります。私はadbと作品についてテストしました。しかし、私はそれをメソッドに入れて、アンドロイドモニターコンソールに出力を表示させることができます。簡単な方法があれば助言してください。ありがとう。使用したい場合は、私がメインの活動スレッド(なしAsynctask)でこれを実行している途中なぜこのメソッドは私にアンドロイドのサブネットマスクを与えていない
/*
* method to return private subnet mask
*/
public String getPrivateSubnet() {
String output = "";
final String SUBNET_CMD = "/system/bin/ifconfig wlan0 | find \"Mask\"";
try {
Process p = Runtime.getRuntime().exec(SUBNET_CMD);
// p.wait();
Log.v("SUBNET OUTPUT", p.toString());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
Log.v("SUBNET", inputLine);
}
in.close();
} catch (IOException ex) {
ex.printStackTrace();
}
Log.v("SUBNET", output);
return output;
}
私は他の方法を探しましたが、ipv4のサブネットマスクを取得するのは非常に面倒です。 ipv6私はNetworInterfaceクラスを使ってそれを得ることができますが、それは私にipv4を与えません。だから私はこの方法を使用しています – miatech
この方法を使用するipconfigのwlanはアンドロイド携帯電話で信頼性が高くありません。出力は電話によって異なります。 Java apiを使用してipv4のサブネットマスクを取得する方法があります – miatech
@miatech私の答えに編集を参照してください。 –