色々と試していたところ、設定アプリの音量、バイブ、マナーモードの設定方法がこれまでとは大きく変わっている事に気が付いた。
以前の記事でも一度検証してみたのだけど、過去バージョンを含めて再度検証を実施してみた。
正直、4.0.4の設定アプリは設定名の意味が分からない…。
検証の前提
検証は以下のバージョンで実施。
- 2.1: 初代XPERIA
 - 2.2: エミュレータ
 - 2.3.3: エミュレータ
 - 2.3.6: Galaxy S2
 - 4.0.2: Galaxy Nexus(バージョンアップ前)
 - 4.0.4: Galaxy Nexus(バージョンアップ後)
 
この検証の結論として明らかにしたいのは以下の内容。
- 各バージョンの設定アプリでどのような設定ができるか?
 - その設定の時、各パラメータがどのような値、組合せになるか?
 - そのパラメータの時、どのような動作になるか?
 
2のパラメータの値はサンプルアプリを用いて確認した。
2については着信音と通知音の両方検証しているが、3については着信音のみでしか行っていない。
当たり前であるが、3の結果は音がなる/ならない、バイブする/しないの4通りしかない。
なお、3.X系については一切触れていない。
バージョングループ
検証の結果、バージョンによって以下4つのグループに分けることができる。
この記事ではこのグループ単位で記述する。
この記事ではこのグループ単位で記述する。
- グループA: 2.1
 - グループB: 2.2〜2.3
 - グループC: 4.0〜4.0.2
 - グループD: 4.0.3〜
 
検証結果 (設定アプリ)
まずは設定アプリのパターンから。
いずれも、「通知音にも着信音量を適用」はONにしたパターンしか試していない。
単にOFFにしたパターンを行うと、結果が膨大になってしまうことが理由。
バージョン 
 | 
着信音量 
 | 
通知音にも着信音量を適用 
 | 
バイブ 
 | 
マナーモード 
 | 
パラメータグループ 
 | 
補足 
 | 
A 
 | 
0 
 | 
ON 
 | 
OFF 
 | 
ON 
 | 
A-1 
 | |
A 
 | 
n 
 | 
ON 
 | 
OFF 
 | 
ON 
 | 
A-2 
 | |
A 
 | 
0 
 | 
ON 
 | 
OFF 
 | 
OFF 
 | 
A-3 
 | |
A 
 | 
n 
 | 
ON 
 | 
OFF 
 | 
OFF 
 | 
A-4 
 | |
A 
 | 
0 
 | 
ON 
 | 
ON 
 | 
ON 
 | 
A-5 
 | |
A 
 | 
0 
 | 
ON 
 | 
ON 
 | 
OFF 
 | 
A-6 
 | |
B 
 | 
0 
 | 
ON 
 | 
OFF 
 | 
常に使用 
 | 
B-1 
 | |
B 
 | 
n 
 | 
ON 
 | 
OFF 
 | 
常に使用 
 | 
B-2 
 | |
B 
 | 
0 
 | 
ON 
 | 
OFF 
 | 
なし 
 | 
B-3 
 | |
B 
 | 
n 
 | 
ON 
 | 
OFF 
 | 
なし 
 | 
B-4 
 | |
B 
 | 
0 
 | 
ON 
 | 
OFF 
 | 
マナーモードでのみ 
 | 
B-5 
 | |
B 
 | 
n 
 | 
ON 
 | 
OFF 
 | 
マナーモードでのみ 
 | 
B-6 
 | |
B 
 | 
0 
 | 
ON 
 | 
OFF 
 | 
マナーモードのときのみ 
 | 
B-7 
 | |
B 
 | 
n 
 | 
ON 
 | 
OFF 
 | 
マナーモードのときのみ 
 | 
B-8 
 | |
B 
 | 
0 
 | 
ON 
 | 
ON 
 | 
常に使用 
 | 
B-9 
 | |
B 
 | 
0 
 | 
ON 
 | 
ON 
 | 
なし 
 | 
B-10 
 | |
B 
 | 
0 
 | 
ON 
 | 
ON 
 | 
マナーモードでのみ 
 | 
B-11 
 | |
B 
 | 
0 
 | 
ON 
 | 
ON 
 | 
マナーモードのときのみ 
 | 
B-12 
 | |
C 
 | 
n 
 | 
- 
 | 
OFF 
 | 
常に使用 
 | 
C-1 
 | |
C 
 | 
n 
 | 
- 
 | 
OFF 
 | 
なし 
 | 
C-2 
 | |
C 
 | 
n 
 | 
- 
 | 
OFF 
 | 
マナーモードがONのときのみ 
 | 
C-3 
 | |
C 
 | 
n 
 | 
- 
 | 
OFF 
 | 
マナーモードがOFFのときのみ 
 | 
C-4 
 | |
C 
 | 
0 
 | 
- 
 | 
ON 
 | 
常に使用 
 | 
C-5 
 | |
C 
 | 
0 
 | 
- 
 | 
ON 
 | 
なし 
 | 
C-6 
 | |
C 
 | 
0 
 | 
- 
 | 
ON 
 | 
マナーモードがONのときのみ 
 | 
C-7 
 | |
C 
 | 
0 
 | 
- 
 | 
ON 
 | 
マナーモードがOFFのときのみ 
 | 
C-8 
 | |
C 
 | 
0 
 | 
- 
 | 
ON 
 | 
常に使用 
 | 
C-9 
 | サイドキー使用 | 
C 
 | 
0 
 | 
- 
 | 
ON 
 | 
マナーモードがONのときのみ 
 | 
C-10 
 | サイドキー使用 | 
D 
 | 
n 
 | 
- 
 | 
OFF 
 | 
ON 
 | 
D-1 
 | |
D 
 | 
n 
 | 
- 
 | 
OFF 
 | 
OFF 
 | 
D-2 
 | |
D 
 | 
0 
 | 
- 
 | 
バイブ 
 | 
ON 
 | 
D-3 
 | |
D 
 | 
0 
 | 
- 
 | 
バイブ 
 | 
OFF 
 | 
D-4 
 | |
D 
 | 
0 
 | 
- 
 | 
ミュート 
 | 
ON 
 | 
D-5 
 | |
D 
 | 
0 
 | 
- 
 | 
ミュート 
 | 
OFF 
 | 
D-6 
 | 
※備考の「サイドキー使用」とは、設定アプリだけでは不可能な設定。サイドキー操作を行うと設定できる。
グループAではバイブ設定もマナーモード設定もチェックボックスになっている。
ユーザの見た目は非常にシンプルで分かり易いけど、器用な設定はできない。
グループBではマナーモード設定がプルダウンになっており、グループAより選択肢が増えている。
グループBの選択肢を見ても意味が分からないと思うけど、内容はグループCと同じ。
単純なON / OFFのみではなく、マナーモードがONのときのみ / マナーモードがOFFのときのみという選択肢が増えていて、グループAより器用な設定が可能になっている。
グループCはグループBをちょっと変えただけ。
まず、「通知音にも着信音量を適用」の設定がなくなっており、必ず通知音量と着信音量が一致するようになっている。
また、マナーモードOFFかつ着信音量が0の設定ができないようになっている。
(グループA、ブループBではマナーモードOFFで着信音量0の設定も可能だった)
グループDはこれまでとは大きく異なる。
マナーモードの設定がチェックボックスではなく、OFF / バイブ / ミュートのプルダウンから選べるようになっている。
逆にバイブ設定がプルダウンではなくチェックボックスになっている。
設定名称も「バイブと着信音をON」とこれまた意味が分からない名称になっているが、「着信音が鳴る時に一緒にバイブしますか?」という意味になる。
そのため、実はマナーモードがOFFの時はバイブ設定は意味をなさない。
検証結果 (パラメータの値と動作)
次は各パラメータグループとその時のパラメータの値と動作。
パラメータグループ 
 | 
着信音量 
 | 
useRingerVolume 
 | 
通知音量 
 | 
バイブ 
(着信)  | 
vibrateInSilent 
 | 
マナーモード 
 | 
バイブ 
(通知)  | 
shouldVibe 
(RINGER)  | 
shouldVibe 
(NOTIFICATION) 
 | 
動作パターン 
 | 
補足 
 | 
A-1 
 | 
0 
 | 
true 
 | 
0 
 | 
1 
 | 
- 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | v | |
A-2 
 | 
n 
 | 
true 
 | 
n 
 | 
1 
 | 
- 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | sv | |
A-3 
 | 
0 
 | 
true 
 | 
0 
 | 
0 
 | 
- 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | - | |
A-4 
 | 
n 
 | 
true 
 | 
n 
 | 
0 
 | 
- 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | s | |
A-5 
 | 
0 
 | 
true 
 | 
0 
 | 
1 
 | 
- 
 | 
1 
 | 
1 
 | 
true 
 | 
true 
 | v | |
A-6 
 | 
0 
 | 
true 
 | 
0 
 | 
0 
 | 
- 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | |
B-1 
 | 
0 
 | 
true 
 | 
0 
 | 
1 
 | 
true 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | v | |
B-2 
 | 
n 
 | 
true 
 | 
n 
 | 
1 
 | 
true 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | sv | |
B-3 
 | 
0 
 | 
true 
 | 
0 
 | 
0 
 | 
false 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | - | |
B-4 
 | 
n 
 | 
true 
 | 
n 
 | 
0 
 | 
false 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | s | |
B-5 
 | 
0 
 | 
true 
 | 
0 
 | 
2 
 | 
true 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | - | |
B-6 
 | 
n 
 | 
true 
 | 
n 
 | 
2 
 | 
true 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | s | |
B-7 
 | 
0 
 | 
true 
 | 
0 
 | 
1 
 | 
false 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | v | |
B-8 
 | 
n 
 | 
true 
 | 
n 
 | 
1 
 | 
false 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | sv | |
B-9 
 | 
0 
 | 
true 
 | 
0 
 | 
1 
 | 
true 
 | 
1 
 | 
1 
 | 
true 
 | 
true 
 | v | |
B-10 
 | 
0 
 | 
true 
 | 
0 
 | 
0 
 | 
false 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | |
B-11 
 | 
0 
 | 
true 
 | 
0 
 | 
2 
 | 
true 
 | 
1 
 | 
1 
 | 
true 
 | 
true 
 | v | |
B-12 
 | 
0 
 | 
true 
 | 
0 
 | 
1 
 | 
false 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | |
C-1 
 | 
n 
 | 
- 
 | 
n 
 | 
1 
 | 
true 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | sv | |
C-2 
 | 
n 
 | 
- 
 | 
n 
 | 
0 
 | 
false 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | s | |
C-3 
 | 
n 
 | 
- 
 | 
n 
 | 
2 
 | 
true 
 | 
2 
 | 
1 
 | 
false 
 | 
true 
 | s | |
C-4 
 | 
n 
 | 
- 
 | 
n 
 | 
1 
 | 
false 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | sv | |
C-5 
 | 
0 
 | 
- 
 | 
0 
 | 
1 
 | 
true 
 | 
1 
 | 
1 
 | 
true 
 | 
true 
 | v | |
C-6 
 | 
0 
 | 
- 
 | 
0 
 | 
0 
 | 
false 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | |
C-7 
 | 
0 
 | 
- 
 | 
0 
 | 
2 
 | 
true 
 | 
1 
 | 
1 
 | 
true 
 | 
true 
 | v | |
C-8 
 | 
0 
 | 
- 
 | 
0 
 | 
1 
 | 
false 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | |
C-9 
 | 
0 
 | 
- 
 | 
0 
 | 
1 
 | 
true 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | サイドキー使用 | 
C-10 
 | 
0 
 | 
- 
 | 
0 
 | 
2 
 | 
true 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | サイドキー使用 | 
D-1 
 | 
n 
 | 
- 
 | 
n 
 | 
1 
 | 
- 
 | 
2 
 | 
1 
 | 
true 
 | 
true 
 | sv | |
D-2 
 | 
n 
 | 
- 
 | 
n 
 | 
2 
 | 
- 
 | 
2 
 | 
2 
 | 
false 
 | 
false 
 | s | |
D-3 
 | 
0 
 | 
- 
 | 
0 
 | 
1 
 | 
- 
 | 
1 
 | 
1 
 | 
true 
 | 
true 
 | v | |
D-4 
 | 
0 
 | 
- 
 | 
0 
 | 
2 
 | 
- 
 | 
1 
 | 
2 
 | 
true 
 | 
true 
 | v | |
D-5 
 | 
0 
 | 
- 
 | 
0 
 | 
1 
 | 
- 
 | 
0 
 | 
1 
 | 
false 
 | 
false 
 | - | |
D-6 
 | 
0 
 | 
- 
 | 
0 
 | 
2 
 | 
- 
 | 
0 
 | 
2 
 | 
false 
 | 
false 
 | - | 
グループAではバイブが2(VIBRATE_SETTING_ONLY_SILENT)にならない。
グループAとBで使用しているuseRingerVolumeとは「通知音にも着信音量を適用」の設定のこと。
グループBでは新しくvibrateInSilentというパラメータがある。
getVibrateSetting()の返り値はVIBRATE_SETTING_ON / VIBRATE_SETTING_OFF / VIBRATE_SETTING_ONLY_SILENTの3種類しかなく、「マナーモードがOFFのときのみ」にあたる値がない。
それを判別するための補助的なパラメータである。
グループCはほぼグループBと同じ。
異なるのは、useRingerVolumeがないことと、マナーモード時に音量が0になり得ないこと。
useRingerVolumeがないため、必ず着信音量と通知音量は同じ値になる。
グループDではバイブが0(VIBRATE_SETTING_OFF)にならない。
また、グループB、Cと異なり、バイブの設定方法がON / OFFのチェックボックスになっているため、vibrateInSettingがなくなっている。
グループCまではバイブ(通知)が必ず1だったが、グループDではバイブ(着信)と同じ値をとるようになっている。
まとめと感想
結局、各グループによって設定方法もまちまちだし、パラメータの取り得る値もかなり異なる。
個人的な考えだが、そもそも、getVibrateSetting()とgetRingerMode()の返り値が3種類というのがおかしい。
バイブ設定にはVIBRATE_SETTING_NOT_ONLY_SILENTがあるべきだったと思うし、マナー設定はboolean型で良かったと思う。
これまでの成り行きを見る限り、どのような方法が良いのかGoogleも迷走しているんじゃないだろうか。
そんな訳で、音量設定アプリを作る場合、Androidの設定アプリを参考にしてもあまり意味がないかも知れない。
0 件のコメント:
コメントを投稿