#*#*4636*#*#のメニューに遷移するアプリ

Android端末で#*#*4636*#*#をダイヤルすると携帯電話情報メニューに入ることができて優先ネットワーク設定を変更することができる。このダイヤル操作を省くことができる、つまりアイコンをタップするだけ「携帯電話情報」メニューの画面が出てくるLTE Settingという名前のアプリが、去年くらいにはGoogle Playにあったのだが、最近インストールしたくなって探してみたら消えていた。


しょうがないので自作した。やることは簡単で下記のようにstartActivityで当該メニューのActivityを開始するだけなのであるが、このActivityの名前は機種によって違う可能性があるので注意が必要である。ここで指定している「RadioInfo」は手持ちのXPeria SXがそうだった。このクラス名はlogcatを表示しつつ通常のダイヤル操作でメニューに入るとstartActivityのlogが出てくるのでわかる。

        Intent in = new Intent(Intent.ACTION_MAIN);
        in.setClassName("com.android.settings", "com.android.settings.RadioInfo");
        startActivity(in);
        finish();

携帯電話情報のメニューのひとつ上のメニューに遷移ささせたいときは、このクラス名を "com.android.settings.TestingSettings" にすればよい。上記のコードをonCreateで実行するような簡単なアプリを作ってアイコンをホーム画面においておけばいつでもアイコンタップで優先ネットワーク設定が可能になる。



なんでこんなアプリが必要だったかというとだ。


Xperia SX/GXでは油断するとネットワークモードがLTE/WCDMAになってしまい、FOMA契約のSIMカードでは通信できなくなってしまう。たとえばマナーモードにしていない状態でリブートするとそうなる。これを解除するためには#*#*4636*#*#にダイアルすると入れる「携帯電話情報」というメニューで優先ネットワーク設定を「WCDMA Only」にし、マナーモードにしてリブート(電源Off/On)し、そしてマナーモードを解除する必要がある。


さらにまずいことに僕のSXは結構な頻度でリブートするのである。最初は「#*#*4636*#*#を入れるなんて大した手間じゃないぜ」と思っていたのだが何度もやってると面倒なのだった。リブート直後はMediaScannerなどが走っていて重く、ダイヤル画面を出すのすら時間がかかることも面倒度合いを高めている一員である。ダイヤル画面は電話として端末を使う場合にはどうせいつか起動する必要があるので、それは別に問題じゃないとも最初は思っていた、しかし冷静に考えてみると、この「携帯電話情報」のメニューをいじったあとは再度リブートしなければいけないのだからダイヤル画面を起動させることはまったく無駄だった。もっと小さいアプリを使うことでダイヤル画面をスキップできるならそれに越したことはないのだった。