来电时无振铃事件

2024-02-13

我不知道哪里出了问题。 听者听不懂onRinging事件(这样我就可以决定接受还是拒绝来电)。 清单中是这样的:

<uses-permission android:name="android.permission.USE_SIP" />

在主要活动中onCreate这是:

IntentFilter filter = new IntentFilter();
filter.addAction("android.SipDemo.INCOMING_CALL");
callReceiver = new IncomingCallReceiver();
this.registerReceiver(callReceiver, filter);
...
SipManager manager = SipManager.newInstance(this);
Intent i = new Intent();
i.setAction("android.SipDemo.INCOMING_CALL");
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);
manager.open(me, pi, null);

in BroadcastReceiver类是这样的:

public void onReceive(Context context, Intent intent) {
SipAudioCall incomingCall = null;
try {
SipAudioCall.Listener listener = new SipAudioCall.Listener() {
...
@Override
public void onCallEnded(SipAudioCall call) {
// TODO Auto-generated method stub
super.onCallEnded(call);
}
@Override
public void onRinging(SipAudioCall call, SipProfile caller) {
try {
call.answerCall(30);
call.startAudio();
call.setSpeakerMode(true);
if(call.isMuted()) {
call.toggleMute();
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
WalkieTalkieActivity wtActivity = (WalkieTalkieActivity) context;
incomingCall = wtActivity.manager.takeAudioCall(intent, listener);
wtActivity.call = incomingCall;
...

我收到CallEnd事件和onChanged(结束通话后)但我没有收到onRinging事件。 可能有什么问题? 谢谢

EDIT :我改变了这一切。 我将新的意图过滤器添加到接收器中,如下所示(粗体):

<receiver android:name=".IncomingCallReceiver" android:label="Call Receiver">
    **<intent-filter>  
        <action android:name="android.intent.action.PHONE_STATE" />  
    </intent-filter>**  
</receiver>

我像这样更改了 BroadcastReceiver 继承类(粗体):

@Override
public void onReceive(Context context, Intent intent) {
    try {
        **PhoneStateListener phoneListener=new PhoneStateListener() {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
        // TODO Auto-generated method stub
        Log.d("DEBUG", "Phone listener....");
        String stateString = "N/A";
        switch (state) {
        case TelephonyManager.CALL_STATE_IDLE:
        stateString = "Idle";
        break;
        case TelephonyManager.CALL_STATE_OFFHOOK:
        stateString = "Off Hook";
        break;
        case TelephonyManager.CALL_STATE_RINGING:
        stateString = "Ringing";
        break;
    }
}
};**
WalkieTalkieActivity wtActivity = (WalkieTalkieActivity) context;
SipSession ses=wtActivity.manager.getSessionFor(intent);
**TelephonyManager telephony = (TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE);  
telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);**
...

现在我只得到 IDLE 状态,但仍然没有振铃。


SipAudioCall 类的源代码中有错误。

要解决此问题:

incomingCall = wtActivity.manager.takeAudioCall(intent, null);
incomingCall.setListener(listener, true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来电时无振铃事件 的相关文章

随机推荐

  • 从 HTTPS 页面到 HTTP URL 的 AJAX 请求

    我有一种情况 我需要从一个 HTTPS 页面到另一个不安全的页面 在不同的域上 执行 AJAX 请求 我们已经实施了 CORS 策略 并且在我们的网站上使用 HTTPS 之前它运行良好 有什么办法可以让这个工作吗 根据 W3 的说法 由于
  • 将文件和目录连同提交历史记录一起移动到子目录中

    如何将目录和文件以及提交历史记录移动到子目录 例如 源码目录结构 project x files sub dirs 目标目录结构 project x p q files sub dirs 要添加到布马古利斯 https stackoverf
  • .Net lib来控制远程GDB [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 您可以对遗留代码库做哪些对提高质量影响最大的事情?

    当您在遗留代码库中工作时 随着时间的推移 什么会对提高代码库的质量产生最大的影响 删除未使用的代码 删除重复的代码 添加单元测试以提高覆盖率较低的测试覆盖率 跨文件创建一致的格式 更新第三方软件 减少静态分析工具 即 Findbugs 生成
  • 具有 CSS 和 HTML 的水平家谱 - 反向

    我在网上搜索并找到了一个很好的家谱示例在代码笔这里 http codepen io anon pen bdLeNe 我想要同样的东西 但旋转了180度 我想以 16 名成员开始我的家谱 并从左到右降序 16 8 4 2 1 如何通过使用 编
  • del 语句与调用 __delitem__ 总是 100% 相同吗?

    a something iterable object in python del a 1 Is del a 1 总是一样a delitem 1 是Python吗del语句定义为调用 delitem method The del陈述 htt
  • 向上按钮调用父 Activity 的 OnDestroy

    首先 我想澄清一些事情 我正在努力使用的按钮不是back按钮 我指的是up home应用程序顶部的 ActionBar Toolbar 中的按钮 而不是底部的 Android 按钮 有几个posts https stackoverflow
  • 将特定 TensorFlow 变量恢复到特定层(按名称恢复)

    假设我训练了一个 TensorFlow 模型并保存了它 现在有一个不同的模型 并且我想将保存的模型中的一些权重用于模型中的某些层 它们具有相同的形状 现在 我能够找到如何从模型中保存特定变量 具有特定名称 但我无法找到任何按名称恢复这些变量
  • 如何将挂起函数作为显式参数传递给协程构建器?

    我正在调查launch协程构建器将协程代码作为block suspend CoroutineScope gt Unit 我们通常将代码作为 lambda 传递 但是 我想知道如何将此函数作为显式参数传递给启动函数 coroutineScop
  • 如何使用gson处理动态响应数据? (json 到 java 对象)

    这是 Json 用户列表 response result users name ABC age 20 gender F name cbd age 23 gender M 有时会像这样返回 response result
  • 使用 Tornado 广播消息

    我有一个发送消息的应用程序 该消息应该广播到每个当前连接的客户端 假设客户数量可能达到数千 如何在不阻塞的情况下实现这个广播逻辑 我认为会阻止的示例代码 clients class Broadcaster tornado websocket
  • Arm Cortex A9交叉编译奇怪的浮点行为

    我正在尝试将更大的应用程序从 x86 移植到 arm cortex a9 但在交叉编译应用程序时 我遇到了像 modf 这样的浮点函数的奇怪分段错误 其他 libc 函数似乎处理浮点数错误 但不会崩溃 见下文 所以我尝试了这个小测试程序 它
  • android.content.UriMatcher 的含义

    Uri Matcher 是什么android content UriMatcher 如何使用它 有人可以解释一下以下三行代码的含义吗 uriMatcher new UriMatcher UriMatcher NO MATCH uriMatc
  • C# 中的 Directory.GetFiles() 模式匹配

    我在用着Directory GetFiles 根据给定模式列出文件 这对于我正在寻找的大多数模式 例如 zip rar sfv 都适用 这就是我准备清单的方式 或多或少 问题在于我想列出的数字 0 001 到 0 999 的模式 alArr
  • 如何更改选定文本的颜色?

    请左键单击并拖动此文本 标记它 您看到的颜色是蓝色 我想使用 Javascript 或 HTML CSS 将该颜色更改为深绿色 浏览器支持有限 selection background ffb7b7 Safari moz selection
  • 了解 ldd 输出

    如何ldd知道这取决于libc so 6 not libc so 5 or libc so 7 libc so 6 gt lib64 libc so 6 0x00000034f4000000 lib64 ld linux x86 64 so
  • 无法从 WP8 上 SD 卡上的 SQLite DB 检索数据

    我在控制台应用程序中使用 System Data SQLite 创建了 SQLite DB 然后我将其移至 Windows Phone 的 SD 卡 我按照以下说明将 SQLite 支持添加到我的 WP8 应用程序 https github
  • 你能在 matplotlib 中绘制实时数据吗?

    我正在一个线程中从套接字读取数据 并希望在新数据到达时绘制和更新绘图 我编写了一个小原型来模拟事物 但它不起作用 import pylab import time import threading import random data Th
  • pymc3 具有来自核密度估计的自定义似然函数

    我正在尝试将 pymc3 与从一些观察数据派生的似然函数一起使用 这些观察到的数据不符合任何好的标准分布 所以我想根据这些观察来定义我自己的数据 一种方法是对观测值使用核密度估计 这在 pymc2 中是可能的 但与 pymc3 中的 The
  • 来电时无振铃事件

    我不知道哪里出了问题 听者听不懂onRinging事件 这样我就可以决定接受还是拒绝来电 清单中是这样的