hostsファイルを置き換える android
androidアプリで、hostsファイルを置き換える、ものを作ろうと思っています。
家でローカルサーバーへアクセスするのに、いちいちhosts editorを使わなければならないからです。
家のSSIDに接続したら、アプリディレクトリに準備してあるhostsファイルと置き換える、というだけのものです。「というだけのもの」と言いながらかなりレベルの高いものだと痛感しました。
なのでハードコードしたものでとりあえず、
アプリを起動したら
SSIDを検知して
hostsを「家用のもの」と「外用のもの」とを置き換える
までのものを作ろうと思っています。
root化されている前提での質問です。
以下は部分的な抜粋コードです。
WifiManager manager = (WifiManager)getSystemService(WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String[] apInfo = new String[4];
String s1 = new String(info.getSSID().trim());
String s2 = "\"exampleSSID\"";
if(s1.equals(s2)){
try {
_process = Runtime.getRuntime().exec("su");
srcChannel = new FileInputStream("/system/etc/hosts").getChannel();
destChannel = new FileOutputStream("hosts").getChannel();
srcChannel.transferTo(0, srcChannel.size(), destChannel);
//↑このあたりでとりあえずhostsファイルを取ってくるコードをやってみているのだけれど、できません。
_process.destroy();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (srcChannel != null) {
try {
srcChannel.close();
} catch (IOException e) {
}
}
if (destChannel != null) {
try {
destChannel.close();
} catch (IOException e) {
}
}
}else{
//ここに外用の置き換えコードを書いたらいいんじゃないかなあと考えています。
}
どうしたらよいでしょうか。ヒントでもご教授いただけたらと思います。
お礼
ありがとうございます!!!!m(_ _)m さっそく、教えていただいたHPを見ながら、 「全期間」を選択し、キャッシュを削除してみたのですが、 変わらず表示されてしまいました…。 やり方が間違えていないか、何度か試してみます。
補足
できました!!!! キャッシュを消した後、URL欄に「Twitter」と入力して、履歴のURLからサイトに飛んでいた為、 キャッシュは消えているけど履歴のサイトに飛んでしまっている?ような感じだったようです。 履歴も消して、検索結果からアクセスしたところ、 何も映らなくなりました! ありがとうございます!!!!!!!