2012-08-30 49 views
0

ICS和JB的操作系統設置爲:「振鈴振鈴」。我嘗試了下一個代碼嘗試獲取狀態,但值不一樣。有廣播或其他方法可以使用嗎?Android - 如何獲得振鈴狀態的振動?

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

在ICS聲音模式下,當檢查「震動戒指」時,它將是真實的。 但在JB中它將是錯誤的。

我試過廣播這樣的:

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 

沒有相關信息 「上環震動」。

謝謝你的任何提示和時間。

回答

2

下一個代碼可以檢查狀態:

Settings.System.getInt(this.getApplicationContext().getContentResolver(), 
         "vibrate_when_ringing", 0);