0

ICS と JB には OS 設定があります: 「バイブレーション オン リング」。次のコードでステータスを取得しようとしましたが、値が同じではありません。使用できるブロードキャストまたは他の方法はありますか?

    AudioManager audioManager = (AudioManager) this.getApplicationContext()
            .getSystemService(Context.AUDIO_SERVICE);
    boolean bVibrateRing = audioManager
            .shouldVibrate(AudioManager.VIBRATE_TYPE_RINGER);

ICS サウンド モードで、「バイブレーション オン リング」をオンにすると、true になります。しかし、JB では false になります。

私はこのようにブロードキャストを試みました:

    receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle extras = intent.getExtras();
            if (extras != null) {
                int nstate = extras
                        .getInt(AudioManager.EXTRA_RINGER_MODE);
                Log.d("receiver", " receiver EXTRA_RINGER_MODE :  "
                        + nstate);
            }
        }
    };
    IntentFilter filter = new IntentFilter(
            AudioManager.RINGER_MODE_CHANGED_ACTION);
    registerReceiver(receiver, filter);

次のモード変更しか取得できませんでした:

RINGER_MODE_NORMAL
RINGER_MODE_SILENT
RINGER_MODE_VIBRATE

「リングで振動」に関する情報はありません。

ヒントと時間をありがとう。

4

1 に答える 1

3

次のコードでステータスを確認できます。

Settings.System.getInt(this.getApplicationContext().getContentResolver(),
                       "vibrate_when_ringing", 0);
于 2012-08-31T08:09:24.990 に答える