나는 스팸 메일 필터링 앱을 개발 중이며 수신 (스팸) 전화에 대한 벨소리를 무음화하려고합니다. 문제는 AudioManager.setStreamMute 또는 AudioManager.setRingerMode가 Lollipop에서 작동하지 않는 것입니다.AudioManager.setStreamMute가 안드로이드 5에서 작동하지 않습니다. Lollipop
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
if (stateStr.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_RING, false);
Log.i(TAG, "unmute");
} else if (stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_RING, true);
Log.i(TAG, "mute");
}
}
가끔 걸려 오는 전화, 항상 실행됩니다 음소거 부분입니다하지만 때로는 성공하고 벨소리를 음소거 실패 여기 내 코드입니다. 나는 어떤 규칙도 찾을 수 없다. audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
도 작동하지 않습니다. 이것은 에뮬레이터 < 5에서 테스트했을 때 제대로 작동하는 것 같습니다. 그래서 Lollipop이 자동 모드가 아니지만 중단 필터와 관련이 있다고 생각합니다. 상업용 스팸 통화 필터가 정상적으로 작동하므로 Lollipop으로 수신 통화를 어떻게 침묵시킬 수 있는지 알려주실 수 있습니까?
관련이 있는지는 잘 모르겠지만 롤 포팝에서만 여러 개의 onReceive 통화가있어 이상한 행동을합니다. 이후로 나는 단지 하나의 전화를 기대하고 있습니다. – gerfmarquez