首页 > 解决方案 > 为什么有来电时android会取消对silenseRinger()的支持?

问题描述

我想在有来电时使铃声静音,我设置了一个按钮来进行这样的测试:

silenceButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ITelephony iTelephony = getITelephony();
        try {
            iTelephony.silenceRinger();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
});

但是当我单击按钮并且 logcat 输出错误时,铃声不会静音:

PhoneInterfaceManager: silenseRinger not supported

我认为我getITelephony()的工作正常,因为我可以根据它拒绝来电:

declineButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ITelephony iTelephony = getITelephony();
        try {
            iTelephony.endCall();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
});

那么为什么android停止支持静音来电呢?还有另一种方法可以做到这一点吗?

标签: android

解决方案


另一种解决方案如下所示:

android.permission.MODIFY_AUDIO_SETTINGS

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//silent mode
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

阅读这些其他问题以获取更多信息:


推荐阅读