控制Android声音设置

时间:2014-06-06 17:22:50

标签: android

我正在开发一个有助于管理通知声音设置的Android应用程序。它应该允许人们在手机自动进入静音模式时设置“安静时间”,等等。使用AudioManager系统服务将卷更改为静音非常容易。

我想知道是否有办法只允许来自特定人的电话响铃,而其他人则被静音。如果您不想在半夜受到干扰,但在紧急情况下仍然可用,这将非常有用。 TelephonyManager的状态更改侦听器是否足够早地触发,以便在响铃开始之前对其进行压制?

只允许某些应用发出声音呢?

我可以使用任何API功能来解决这些问题吗?

1 个答案:

答案 0 :(得分:0)

TelephonyManager确实可用于仅允许某些人拨打电话。

例如:

TelephonyManager tm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
class PhoneRingingListener extends PhoneStateListener
{
    @Override
    public void onCallStateChanged(int state, String incomingNumber)
    {
        if (state==TelephonyManager.CALL_STATE_RINGING && !incomingNumber.equals("important number"))
        {
            AudioManager am = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
            am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
        }
    }
}

tm.listen(new PhoneRingingListener(), PhoneStateListener.LISTEN_CALL_STATE);

当除了“重要号码”手机之外的任何人都会将手机静音。这在手机实际开始响铃之前触发。

我没有找到任何可以使某些应用静音的内容