我正在开发一个有助于管理通知声音设置的Android应用程序。它应该允许人们在手机自动进入静音模式时设置“安静时间”,等等。使用AudioManager
系统服务将卷更改为静音非常容易。
我想知道是否有办法只允许来自特定人的电话响铃,而其他人则被静音。如果您不想在半夜受到干扰,但在紧急情况下仍然可用,这将非常有用。 TelephonyManager
的状态更改侦听器是否足够早地触发,以便在响铃开始之前对其进行压制?
只允许某些应用发出声音呢?
我可以使用任何API功能来解决这些问题吗?
答案 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);
当除了“重要号码”手机之外的任何人都会将手机静音。这在手机实际开始响铃之前触发。
我没有找到任何可以使某些应用静音的内容