アプリの要件: バイブレーション設定がオフの状態で電話が呼び出しモードに なっていることを検出するため、問題は次のようになります: バイブレーション設定がオフかオンかを検出する
関連情報:
まず、
Vibratorには次のようなメソッドがなく、VibrateおよびEXTRA_VIBRATE_...isVibratorModeOn()
に関連 する
フラグ はすべて非推奨とマークされています。
この定数は、API レベル 16 で非推奨になりました。アプリケーションは、getRingerMode() を介して照会できる現在の呼び出し音モードに基づいて、独自の振動ポリシーを維持する必要があります。
しかし、getRingerMode()の下では、バイブレーション設定がRINGER_MODE_NORMALでオフになっているかどうかは正確にはわかりません。
バイブレーション設定がオンの場合、振動します。
getVibrateSetting ()も非推奨になりました。
Nexus 6 の Android M をRINGER_MODE
含む *ほとんどのデバイスと OS のバージョンを検出するために機能するコード:
if(audioManager.getRingerMode()!=AudioManager.RINGER_MODE_SILENT){
if (audioManager.getStreamVolume(AudioManager.STREAM_RING) != 0) {
*例外: Nexus 5 - 5.1.1、おそらくすべての Lollipop バージョン
これが見落とされていたり、明らかな何かを見逃して大きな(最高の)ばかげた間違いを犯したりした場合、私は非常に驚くべきことを感じます。うまくいけば、これはあなたの時間の無駄ではありません。
問題を説明する詳細は次のとおりです。
RINGER_MODE_SILENT
対象となるシナリオ:
Android M、Nexus 6 からのスクリーンショットのトリミング