android.provider.Settings で未定義の画面

Android 設定画面の呼び出しは、android.provider.Settings で定義された
定数で生成する Intent startActivity で呼べば良いが全ての設定画面の定数
が定義されているわけではない。
APIレベルによる違いや、機種依存がある理由であろう。

例えば、Android2.3.3 の Android設定→「表示」または「画面表示」→「バックライト」 で操作して出す
バックライトの明るさ、消灯までの時間を設定する画面では、
ActivityManager は、以下のログを出してくれる。

  Starting: Intent { cmp=com.android.settings/.BacklightSettings }

これを startActivity で呼び出す場合、android.provider.Settings には定義が存在せず。

Android 2.3.x ならば、、、以下のように実行すると表示できる。
startActivity(new Intent("android.settings.BACKLIGHT_SETTINGS"));

これは、Android4.0~などでは、そもそも画面の表示設定の項目にバックライトOFF時間の設定があるので、
API レベルを考慮して、

if (android.os.Build.VERSION.SDK_INT  > 10){
   startActivity(new Intent("android.settings.DISPLAY_SETTINGS"));
}else{
   startActivity(new Intent("android.settings.BACKLIGHT_SETTINGS"));
}

とすれば、良いだろう。


他に android.provider.Settings で定義されないものをこのように呼び出したいのだけど、、、
例えば、Android設定→「音」→「マナーモード」 で操作して出すマナーモードの設定画面では、
ActivityManager は、以下のログを出してくれる。

  Starting: Intent { cmp=com.android.settings/.toshiba.mannersmode.Mannersmode }

--->> F-05D で実行、富士通なのに、東芝??


テザリング設定を表示する時は以下のメッセージ

Starting: Intent { act=android.intent.action.MAIN cmp=com.android.settings/.TetherSettings }

テザリングは可能な機種に限定することになるが、

   "android.settings.TETHER_SETTINGS"

Intent startActivity してもダメだった!

「マナーモード」設定呼び出しも、できるようにしたい。