最近はwifiのスキャン速度を上げたいので、IwlistとIwconfigのツールを使っています。からダウンロード: https://github.com/nvamelichev/wireless-tools-android
コンパイル後、これら 2 つのバイナリ ファイルを適切な権限で /system/xbin/ に配置しました。「ターミナルエミュレータ」のアプリでは問題なく動作しますが、自分のアプリで実行しようとすると。それは動作しません....これが私のコードです:
iwProcess = Runtime.getRuntime().exec("iwlist --version");
BufferedReader reader = new BufferedReader(new InputStreamReader(
iwProcess.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
output.append(buffer, 0, read);
}
reader.close();
iwProcess.waitFor();
String nativeOutput = output.toString();
mTextView.setText(nativeOutput);
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(
iwProcess.getErrorStream()));
while ((read = br.read(buffer)) > 0) {
sb.append(buffer, 0, read);
}
br.close();
mTextView.setText(output + sb.toString());
その結果、「プロトコルでサポートされていないソケットアドレスファミリ」が表示され、本当に混乱します....