如何在android中以编程方式将设备铃声更改为NONE

时间:2018-01-24 10:48:28

标签: android

我想在应用安装上将设备铃声更改为无(无铃声)。我曾尝试使用音频管理器,但它没有使用某些设备。

  

我想选择如下图片

的铃声类型

enter image description here

  

我找到了这段代码,但它会显示我不希望的默认铃声列表,我想直接将其设置为无默认选择

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION|RingtoneManager.TYPE_RINGTONE);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
startActivityForResult(intent, 0);
  

选择无模式

RingtoneManager.setActualDefaultRingtoneUri(此,RingtoneManager.TYPE_RINGTONE,NULL);

  

不适用于沉默

`

1 个答案:

答案 0 :(得分:0)

我没有得到完美的答案,但是以下答案可以帮助您,请检查

  

选择铃声模式NONE

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, null);
  

选择铃声模式SILENCE,但在某些设备上会导致无声音乐音量和铃声无声

AudioManager ringerMode = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
ringerMode.setRingerMode(AudioManager.RINGER_MODE_SILENT);
  

我暂时处理了导致问题的问题

if (Build.BRAND.equalsIgnoreCase("xiaomi") || 
Build.MANUFACTURER.equalsIgnoreCase("vivo")) {
RingtoneManager.setActualDefaultRingtoneUri(this, 
RingtoneManager.TYPE_RINGTONE, null);
} else {
    ringerMode.setRingerMode(AudioManager.RINGER_MODE_SILENT);
}