gpt4 book ai didi

android - 如何让特定的调用响铃而其他调用静音?

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:00 25 4
gpt4 key购买 nike

我想创建一个基于来电的安卓应用。

当重要的人来电时,我应该接听来电,但如果其他人来电,我的电话应该保持静音。

由于我是 android 的新手,这对我来说非常困难。

最佳答案

可以通过四个步骤来实现您的要求。

  1. 获取来电号码
  2. 将其与您的数据(可以存储在数据库或共享首选项中)进行比较
  3. 让铃声静音

获取来电号码:

你需要创建一个Broadcast receiver say CallReceiver 在Manifest中分配它的 Action 。

<receiver android:name=".CallReceiver" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>

在该广播中,您需要将 PhoneStateListener 添加到您的 TelephonyManager,PhoneStateListener 已使用 Number 参数覆盖 onCallStateChanged()。就是这样。

CallReceiver.Java

public class CallReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String Number) {
super.onCallStateChanged(state, Number);
System.out.println("Number: " + Number);
// Compare your number to from this `Number` if it is found in you list then make ring state RINGER_MODE_NORMAL
// else make it to RINGER_MODE_SILENT
if (Number found in list) {
// to make Ring state silent
AudioManager audiomanager = (AudioManager)YourActivityName.this.getSystemService(Context.AUDIO_SERVICE);
audiomanager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
} else {
// to make Ring state Normal (Ringable)
AudioManager audiomanager = (AudioManager)YourActivityName.this.getSystemService(Context.AUDIO_SERVICE);
audiomanager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}
}
},PhoneStateListener.LISTEN_CALL_STATE);
}

让 Ring 静音:

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

关于android - 如何让特定的调用响铃而其他调用静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21846204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com