2011-10-08 3 views
4

프로그래밍 방식으로 '햅틱 피드백'과 같은 글로벌 설정을 어떻게 변경할 수 있습니까?
(수동으로 'Sound & 디스플레이 설정'에서이 설정을 변경할 수 있습니다.)프로그래밍 방식으로 '햅틱 피드백'과 같은 전역 설정을 변경하는 방법은 무엇입니까?

비행기 모드는 다음 코드를 사용하여 수행 할 수 있습니다

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과 같은 것에 관심이 없습니다. 전역 설정을 변경하는 방법을 찾고 있습니다. ('Sound & 디스플레이 설정'의 체크 박스를 수동으로 체크/체크 해제하는 경우처럼)

답변

0

VIBRATE_SETTING_CHANGED 또는 RINGER_MODE_CHANGED을 사용해 보셨습니까? 이는 SDK의 platforms/android-x/data/broadcast_actions.txt에있는 브로드 캐스트 인 텐트 목록에 제공됩니다.

+0

친애하는, 그래 나는 그걸 시도했지만 성공하지 못했습니다. 그러나 VIBRATE_SETTING_CHANGED 및 RINGER_MODE_CHANGED에 추가해야하는 "putExtra"인수가 무엇인지 분명하지 않습니다. 어떤 주장이 그들과 다른 의도에 속하는지 알 수있는 정보를 어디서 찾을 수 있습니까? –

+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 권한을 설정했습니다.

관련 문제