전화가 올 때 장치 진동 설정을 해제하고 싶습니다. PHONE_STATE
브로드 캐스트를 수신하면이 기능을 수행하는 BroadcastReceiver를 구현했습니다. 문제는 진동을 전혀 끌 수 없다는 것입니다.수신 전화 수신시 진동 설정이 꺼지지 않음 - Android
AudioManager audioManager = (AudioManager)
context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_OFF);
또는
Vibrator vib = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vib.cancel();
첫 번째 방법은 나에게 이상적인 것 : 나는 다음을 시도했다. 전화 수신시 진동을 "켜기"위해 작동합니다. 그러나, 나는이 시나리오에서 "off"할 수는 없다.
아무도 이것을 시도한 적이 있습니까?
편집 : Android의 Phone 앱 코드를 확인했습니다. 코드에 이어 Ringer.java에 존재 :
if (shouldVibrate() && mVibratorThread == null) {
mContinueVibrating = true;
mVibratorThread = new VibratorThread();
mVibratorThread.start();
}
스레드가 전화를 진동 전화 응용 프로그램에 의해 처음 시작됩니다. 진동 설정을 off로 변경하면이 검사는 건너 뛰지 만 이미 시작된 스레드는 계속 실행됩니다.
수신 전화가 오면 진동이 켜지는 방법에 대해서도 설명합니다. 이 경우 스레드가 처음에 실행되고 있지 않습니다. 그런 다음 진동 설정을 켜면 시작됩니다. 나는 전화 애플 리케이션을 변경하지 않고 문제에 대한 해결책이 있다고 생각하지 않습니다.
나는 그것에 대해서도 관심이 있습니다. 내가 아는 한 그것은 그것과 같습니다 : 진동을 시작하는 실이나 문맥 만이 나중에 멈출 수있는 유일한 것입니다. 진동 설정 변경에 대해 : 안드로이드에 버그가있는 것 같습니다. 설정이 변경되면 청취자에게 알림이 전송되지 않으므로 진동을 멈출 수 없습니다. – SimonSays
안녕하세요 Aman,이 문제를 해결 했습니까? 나는 같은 문제에 직면하고있다. –