gpt4 book ai didi

android - 第三方应用程序可以在android 7中实现CallScreeningService吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:57:18 26 4
gpt4 key购买 nike

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/

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