gpt4 book ai didi

android - 当我的 Messenger 应用程序正在通话中或想要调用电话时,如何检测 skype/telegram/whatsapp 通话?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:00 28 4
gpt4 key购买 nike

我想知道是否有一种方法可以检测正在进行的 Skype 调用/电报/whatsapp/fb 信使调用等或来电等,就像电话管理器/监听器的常规电话一样?我想要某种机制来检测来自 skype/telegram 等的正在进行/传入等调用我的应用程序。我遇到了这个解决方案:Call Detection for skype in android但不确定它是否适用于所有通用 Messenger 应用程序。我可以在我这边实现黑客攻击或任何类型的监听器来检测这些吗?任何想法都会很棒。

谢谢!

最佳答案

您可以使用 AudioManager系统服务并使用 AudioManager#getMode() 检查音频模式 .根据文档,AudioManager#getMode()返回当前音频模式,可以是以下之一:

  • MODE_NORMAL (0x00000000): 普通音频模式:不响铃,也没有建立通话。

  • MODE_RINGTONE (0x00000001): 振铃音频模式。正在发出传入信号。

  • MODE_IN_CALL (0x00000002):通话音频模式。电话调用已建立。

  • MODE_IN_COMMUNICATION (0x00000003):通讯音频模式。建立音频/视频聊天或 VoIP 调用(在 API 11 中添加)。

使用 AudioManager#getMode()您可以检查当前是否有任何其他应用正在持有 MODE_IN_COMMUNICATION 类型的音频焦点,并相应地处理您的调用。

AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
final int mode = am.getMode();
if(AudioManager.MODE_IN_CALL == mode){
// device is in a telephony call
} else if(AudioManager.MODE_IN_COMMUNICATION == mode){
// device is in communiation mode, i.e. in a VoIP or video call
} else if(AudioManager.MODE_RINGTONE == mode){
// device is in ringing mode, some incoming is being signalled
} else {
// device is in normal mode, no incoming and no audio being played
}

附言我已经用 whatsapp messenger 测试了它,它有效!不能对其他 Messenger 应用说同样的话。

关于android - 当我的 Messenger 应用程序正在通话中或想要调用电话时,如何检测 skype/telegram/whatsapp 通话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49302694/

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