- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Android API 级别 24 引入了一个名为 CallScreeningService 的新服务.该文档说该服务可以由默认拨号程序实现以筛选来电。我想在我自己的应用程序中实现此服务,最好不创建一个完整的拨号器应用程序,但是当来电发生时,操作系统似乎忽略了一个简单的天真实现。
AndroidManifest.xml fragment :
<service android:name="com.example.callbouncer.CallService" android:permission="android.permission.BIND_SCREENING_SERVICE">
<intent-filter>
<action android:name="android.telecom.CallScreeningService"/>
</intent-filter>
</service>
调用服务.java:
// imports...
public class CallService extends CallScreeningService {
@Override
public void onScreenCall(Call.Details callDetails) {
CallResponse.Builder response = new CallResponse.Builder();
Log.e("CallBouncer", "Call screening service triggered");
respondToCall(callDetails, response.build() );
}
}
构建或安装此程序时没有错误,但似乎没有进行筛选。我是不是做错了什么(比如 list 或服务中缺少实现/覆盖),还是根本不可能?如果在这样的小应用程序中不可能,如果我实现一个完整的拨号应用程序并将其设置为默认拨号程序是否可能?最后,如果是这样,是否有什么阻止我将拨号程序从 AOSP 中 fork 出来并向其添加我的功能?
最佳答案
从 Android 10 (API 29+) 开始,您可以拥有 CallScreeningService
而无需同时实现整个拨号器应用程序的要求。在 Android 10 之前,只会调用默认拨号器应用程序的调用 CallScreeningService
。
https://developer.android.com/about/versions/10/features#call-screening
不过不要太兴奋,因为它有很多错误并且不能像文档所说的那样工作:
我的已知联系人调用解决方法是要求用户访问联系人并检查来电者是否在用户的联系人中。目前没有其他问题的解决方法。
我制作了一个非常基本的筛选应用程序,它拒绝来自不在用户联系人中的号码的所有调用,如果您愿意,您可以使用一个示例:https://github.com/joshfriend/gofccyourself
关于android - 第三方应用程序可以在android 7中实现CallScreeningService吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43617497/
我想获取调用详细信息并阻止调用(如有必要)。由于 TelecomManager endCall 方法已弃用,并且根据它建议使用 CallScreeningService 的文档。 https://de
尝试在 Android 10 上响铃几秒后断开来电。使用 CallScreeningService 过滤来电。 @RequiresApi(Build.VERSION_CODES.N) class My
我正在为 Android api 29 创建一个调用拦截器。为了做到这一点,我有一个扩展 CallScreeningService 的类,如 here 所述。 .我的应用程序可以检测来电和去电,但我不
我是一名优秀的程序员,十分优秀!