2011-10-08 65 views
4

如何以編程方式更改「觸覺反饋」等全局設置?
(手動您可以在'聲音&顯示設置'中更改此設置)如何以編程方式更改「觸覺反饋」等全局設置?

更改例如飛行模式可以用下面的代碼來完成:

private void setAirplaneMode(boolean bOn) 
{ 
    Settings.System.putInt(getContentResolver(), 
          Settings.System.AIRPLANE_MODE_ON, 
          bOn ? 1 : 0); 

    Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); 
    intent.putExtra("state", bOn ? 1 : 0); 
    sendBroadcast(intent); 
} 

然而,對於「觸覺反饋」,這並不工作,因爲我沒有找到相應的意圖。

只需

private void setHapticFeedbackMode(boolean bOn) 
{ 
    Settings.System.putInt(getContentResolver(), 
          Settings.System.HAPTIC_FEEDBACK_ENABLED, 
          bOn ? 1 : 0); 
} 

不工作(我猜的意圖的廣播是真的有必要)。

我對setHapticFeedbackEnabled之類的東西不感興趣,因爲這樣你只會改變調用app/view如何處理觸覺反饋的方式。 我正在尋找一種方法來更改全局設置。 (如果你喜歡被檢查/「&顯示設置聲音」手動取消選中複選框選中)。

回答

0

您是否嘗試過使用VIBRATE_SETTING_CHANGEDRINGER_MODE_CHANGED?這些在SDK的platforms/android-x/data/broadcast_actions.txt下的廣播意圖列表中提供。

+0

親愛的,是的,我嘗試過那些,但沒有成功。但我應該說,我不清楚哪些「putExtra」參數應該添加到VIBRATE_SETTING_CHANGED和RINGER_MODE_CHANGED。我在哪裏可以找到哪些信息,我可以知道哪些參數屬於他們(和其他意圖)? –

+0

所有常量的列表在這裏(如果這就是你問的):http://developer.android.com/reference/android/media/AudioManager.html。所以,例如,振鈴模式常量是'RINGER_MODE_NORMAL','RINGER_MODE_SILENT'和'RINGER_MODE_VIBRATE'。 – ernes7a

5
Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED, 0); 

這不會爲我工作。您已經在我設想的清單中設置了WRITE_SETTINGS權限。

相關問題