问题标签 [incallservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - onCallAdded的回调如何获取当前设备的电话号码和SIM卡槽?
背景
我正在开发一个实现InCallService的应用程序,因此它可以处理电话
问题
在具有多 SIM 卡的设备上,我需要显示(当前设备的)使用了哪个 SIM 卡和相关电话号码的信息。
问题是,我找不到从哪里获得这些信息。
我发现了什么
鉴于我达到了onCallAdded之类的函数,我得到了一个Call类的实例,所以我需要将我从那里得到的东西关联到一个 sim 插槽和电话号码。
使用
call.getDetails().getHandle()
,我可以得到一个 Uri,它只包含另一个打电话的人(打电话给当前用户,或者当前用户打电话给谁)的电话号码。我可以遍历所有 SIM 卡,但找不到可以用来在它们和当前通话之间映射的内容:
有一个旧代码不再起作用,它使用
call.getDetails().getAccountHandle().getId()
andSubscriptionManager.from(context)getActiveSubscriptionInfoList().getActiveSubscriptionInfoList()
。我想我可以使用
telephonyManager.getSubscriptionId(callDetails.getAccountHandle())
,但它需要 API 30,这是相当新的......
问题
给定我从这个回调(可能还有其他)中接到的电话,我怎样才能获得相关的 SIM 卡插槽和电话号码?
我更喜欢知道如何为尽可能广泛的 Android 版本做到这一点,因为 InCallService 来自 API 23……在 API 30 之前应该可以,对吧?
android - 活动被杀死时录制的音频丢失
您好,我已经制作了自定义呼叫拨号器,其中呼叫拨到预定义的号码。接通电话后,我开始录制语音并将其保存到外部存储中。
一切都很好,直到我在通话期间不杀死应用程序。一旦我杀了 app mediarecorder 停止录制语音但仍在写入字节。
它看起来像 mediaRecorder 与活动有一些联系。但不知道我在哪里做错了。这是我的呼叫服务代码。
}
请帮我解决这个问题,我不知道出了什么问题。
android - ANDROID 8 及更高版本 - 以编程方式接受/拒绝来自应用程序的语音呼叫?
我们能否以编程方式接受/拒绝/保持/恢复/切换语音通话,而不将应用程序设置为手机的默认电话应用程序? https://developer.android.com/reference/kotlin/android/telecom/InCallService建议制作默认手机应用。
多年来有很多这样的问题被问到,但由于 Android 实现的频繁变化,没有明确或可靠的答案。Android 文档也没有多大帮助。
任何链接/建议将不胜感激。