ユーザーが電話がリンガーモードからサイレントモードに移行するのか、サイレントモードに移行するのか、またはその逆に移行するのかをユーザーが確認できる、ブロードキャストレシーバーの実装が必要です。
int volumeValue = (Integer)intent.getExtras().get("android.media.EXTRA_VOLUME_STREAM_VALUE");
私はこのコードを試しましたが、リンガーからサイレント、サイレントからバイブレーション、またはその逆に同じ値を与えるため、あまり役に立ちません。電話がリンガーモードからサイレントになり、バイブレーションするためにサイレントになったら、実際にアクションをキャッチしたいです。よろしくお願いします。