问题标签 [callscreeningservice]
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 - Call.Details 类的“DIRECTION_UNKNOWN”到底是什么?
背景
我正在研究CallScreeningService 的工作原理(此处的示例存储库,此处更简单,如果有人想签出)。
问题
我注意到callDirection有传入、传出和“ DIRECTION_UNKNOWN ”:
表示呼叫既不是呼入也不是呼出。在呼叫切换等特殊情况下,由 ConnectionService 直接报告的呼叫可能就是这种情况。
我不明白这是什么意思。
我试过的
我试着看看我是否可以让正常的电话触发它,但当然不是这样。
问题
这是什么特殊情况?什么是“呼叫切换”?
android - 如何在android中使用CallScreeningService拒绝来电
我正在尝试在我的 android 应用程序(targetSdkVersion 29)中添加 CallScreeningService 而不使我的应用程序成为调用者应用程序。我按照所有说明进行操作,但仍然无法正确获取或遗漏了某些内容。这是我的代码:
添加了以下权限:
但是当我打电话时,这个服务仍然没有被调用。有什么我想念的吗?我也看到了这个问题,但不明白为什么我们需要 ServiceConnection,因为文档中没有提到它。
android - Android CallScreeningService 提供来电显示
在 Android CallScreeningService 文档中,它声明 CallScreeningService 类应该实现两个目的,如下所示,呼叫阻止/筛选和呼叫识别(显示他们选择的用户界面,其中包含呼叫的识别信息)。
我已经实现了 CallScreeningService 类并且能够阻止来电或去电,但是在 CallScreeningService 类或其任何使用的类(Call.Details、Call.Response)中,我找不到任何关于如何提供来电显示的方法或文档作为文档大纲。应用程序实现 CallScreeningService 所需的角色是ROLE_CALL_SCREENING,它还指出在其文档中提供呼叫者 ID:
要获得此角色的资格,应用程序需要实现 CallScreeningService。该应用程序将能够筛选呼叫并提供呼叫识别
CallScreeningService 文档: https ://developer.android.com/reference/android/telecom/CallScreeningService
java - 如何为 Andoid<=28 实现 CallScreeningService
**到目前为止我做了什么:**
我已经为 Android SDK 29 实现了它
**我在找什么?: **
我想为 < SDK 29 的设备实施呼叫筛选服务。如果有人以前做过,请帮助我。
java - 成为 API >= 24 上的 CallScreeningService
我想成为 API >= 24 上的 CallScreeningService。这应该是可行的,因为该功能是在 24 中实现的,但是文档中推荐的用法使用RoleManager(在 29 中实现)。
我尝试使用这里和这里的方法,但是我似乎无法设置我的自定义服务类或我的 MainActivity.java。我尝试运行该服务,该服务要么失败并且什么都不做,要么让我的应用程序崩溃。我仍然是 Android 应用程序开发的新手(但对 Java 有一定的经验),因此感谢初学者友好的回复。我确实让developer.android 文档中的方法起作用,但是它再次使用 >=29。
我应该写什么来设置我的自定义筛选服务类和 MainActivity.java(至少仅用于 onCreate())?这是我到目前为止所拥有的:
显现
MyCallScreeningService.java
如果您选择发布代码或代码资源,请使用 Java。我对 Kotlin 不熟悉。
编辑:添加这个:
和(在我的 MainActivity 中):
产生以下异常
java.lang.ClassCastException: android.telecom.CallScreeningService$CallScreeningBinder 不能转换为 com.example.myapp.MyCallScreeningService$MyCallScreeningBinder
在 com.example.callscreen.MainActivity$1.onServiceConnected(MainActivity.java:20)
MainActivity.java 第 20 行由最后一个代码块中的注释块指示。我不确定编译器如何从 MyCallScreeningService 类中提取 Android 系统 CallScreeningBinder。我觉得如果我能解决这个问题(即让我的 onServiceConnected 识别我的 MyCallScreeningBinder),我将正确绑定我的服务,但我不知道如何做到这一点。
android - 在Android中,当有来电时,让来电显示通知直观地显示在屏幕上?
我们正在开发一个可以从电话号码识别来电名称的应用程序。(我们的问题与此类似,但解决方案不同)我们创建了一个 CallScreeningService,它接收来电的电话号码,并且我们能够在有电话时显示显示来电显示的 toast。但是,我们想要显示通知,而不是显示 toast。(我们还尝试在 Android 原生来电屏幕上显示一个弹出窗口,例如真正的来电 Android 应用程序,但当应用程序处于后台或关闭状态时无法显示)现在我们还可以在有来电显示时创建来电显示通知一个电话,但它没有直观地出现在屏幕上。
是否可以在来电的同时使通知直观地出现在屏幕上?如果是,如何?
太感谢了!
android - 如果我使用 BroadcastReceiver,Android CallScreeningService 放在哪里?
我正在使用广播接收器来检测来电,然后调用我的自定义来电屏幕,如下所示:
这是 CallScreeningService:
所以我不确定这个 CallScreeningService 与 BroadcastReceiver 一起在哪里使用,我可以在来电时创建和显示我的自定义屏幕?