如何在配置文件处于振动模式时使手机振动或在配置文件处于静音模式时从不响铃并在响铃模式下响铃

Posted

技术标签:

【中文标题】如何在配置文件处于振动模式时使手机振动或在配置文件处于静音模式时从不响铃并在响铃模式下响铃【英文标题】:How to make phone vibrate when profile is on vibration mode or never ring when profile is on silent mode and will ring on ringing mode 【发布时间】:2019-02-17 17:47:12 【问题描述】:

当我在 android 中开发通话应用程序时,我已经实现了在来电时播放原生铃声:

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALL);
        ringtone = RingtoneManager.getRingtone(getApplicationContext(), notification);
        ringtone.play(); 

所以我想要的是实现原生的整体行为,例如当我们接到电话或任何其他应用程序的电话时。 (因为我是这个网站和android开发的初学者,所以请指导我的错误并提前谢谢你)

【问题讨论】:

感谢您的努力,感谢您的建议! 【参考方案1】:

试试这个

RINGER_MODE_NORMAL 此模式用于在设备中设置振铃模式。 RINGER_MODE_SILENT 此模式用于在设备中设置静音模式。 RINGER_MODE_VIBRATE 此模式用于设置设备的振动模式。

【讨论】:

【参考方案2】:

试试这个代码...

通过使用 Context.AUDIO_SERVICE 参数调用 getSystemService() 方法来创建 AudioManager 类的实例。一旦我们创建了 AudioManager 类的实例,我们就可以使用 setRingerMode() 方法来设置我们设备的音量或振铃模式根据我们的要求。 代码:

AudioManager aManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
aManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

通过AudioManager类的getRingerMode()方法,我们可以很方便的获取设备当前的铃声模式。

AudioManager aManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int currentMode = aManager.getRingerMode();

if(currentMode == AudioManager.RINGER_MODE_NORMAL)
    // Do your code

【讨论】:

以上是关于如何在配置文件处于振动模式时使手机振动或在配置文件处于静音模式时从不响铃并在响铃模式下响铃的主要内容,如果未能解决你的问题,请参考以下文章

如何配置定时任务

当应用程序在后台并且手机处于振动状态时,一些闹钟应用程序(例如 Alarmy)如何能够在 iPhone 上播放声音

如何以编程方式启用和禁用振动模式

Android:铃声模式更改为静音不会停止手机振动

如何在 react-native android 应用程序中单击时将铃声模式更改为静音/响铃/振动?

如何让Android手机在摇晃时振动?