在 android Nougat Api 24 中以编程方式断开来电

2024-01-11

我将使用 ITelephony.aidl 的 endCall 方法以编程方式断开所有传入呼叫。

这是我的广播接收器:

public class CallBlocker extends BroadcastReceiver {

String number;

@Override
public void onReceive(Context context, Intent intent) {

    if (intent.getAction() != null && intent.getAction().equals("android.intent.action.PHONE_STATE")) {
        disconnectIncomingCall(context);
    }
}

private void disconnectIncomingCall(Context context) {
    ITelephony telephonyService;
    TelephonyManager telephony = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);
    try {
        Class c = Class.forName(telephony.getClass().getName());
        Method m = c.getDeclaredMethod("getITelephony");
        m.setAccessible(true);
        IBinder binder = (IBinder) m.invoke(null, new Object[]{TELEPHONY_SERVICE});
        telephonyService = ITelephony.Stub.asInterface(binder);
        telephonyService.endCall();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

这是我的服务:

public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
    return new ITelephony.Stub() {
        @Override
        public boolean endCall() throws RemoteException {
            return false;
        }

        @Override
        public void answerRingingCall() throws RemoteException {

        }

        @Override
        public void silenceRinger() throws RemoteException {

        }
    };
}
}

这是 ITelephony.aidl 文件:

package com.android.internal.telephony;

interface ITelephony {

boolean endCall();

void answerRingingCall();

void silenceRinger();

}

我在 Manifest 中声明了 Service 和 BroadcastReceiver。

当我运行项目并连接调用时,出现以下错误:

java.lang.NullPointerException: null receiver

在这一行:

IBinder binder = (IBinder) m.invoke(null, new Object[]{TELEPHONY_SERVICE});

我怎样才能解决这个问题,以在android中以编程方式阻止所有来电?


None

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

在 android Nougat Api 24 中以编程方式断开来电 的相关文章

随机推荐

  • PySpark - 将单个整数列表与列表列进行比较

    我正在尝试检查 Spark 数据帧 带有列表的列 中的哪些条目包含给定列表中最大数量的值 我想出的最好的方法是迭代数据框rdd foreach 并使用 python 比较给定列表与每个条目set1 intersection set2 我的问
  • ??空合并运算符 --> 合并是什么意思?

    我很想撒谎说英语是我的第二语言 但事实是我只是不知道 合并 是什么意思 我知道什么 在 C 中是 does 但这个名字对我来说没有意义 我查了一下这个词 我知道它是 加入 的同义词 空连接运算符 仍然没有意义 有人可以启发我吗 我很想撒谎说
  • 如何使用UIAppearance外观WhenContainedIn:

    我注意到在 iOS5 中我们可以通过以下方式自定义 UIKit 控件UIAppearance我开始使用它 我想用appearanceWhenContainedIn 定制UINavigationBar s tintColor在不同的班级 例如
  • 使用 puppeteer 和 MutationObserver 检测 DOM 更改

    我想检测某些加载页面上的 DOM 更改 例如 本地新闻页面上添加的新文章 并在检测后执行某些操作 发送电子邮件 在此示例中 我尝试检测子节点是否已从父节点 目标 div 节点 添加或删除 并在检测后在控制台中输出某些内容 我需要实现暴露功能
  • 在python中读取大csv文件的行

    我有一个非常大的 csv 文件 无法完全加载到内存中 所以我想一块一块地读取它 将其转换为numpy数组 然后再做一些处理 我已经检查过了 在Python中读取大文件的惰性方法 https stackoverflow com questio
  • 如何在谷歌应用程序引擎(Python)中使用numpy

    根据官方文档 numpy 作为谷歌应用程序引擎中的库支持here https developers google com appengine docs python tools libraries27 经过几次尝试后我无法导入它 有人可以分
  • 如何使用 Matplotlib 在对数刻度上显示次要刻度标签

    有谁知道如何使用 Python Matplotlib 以对数刻度显示次要刻度的标签 您可以使用plt tick params axis y which minor 设置小刻度并使用matplotlib ticker FormatStrFor
  • JSON 服务在失败/错误时应返回什么

    我正在用 C ashx 文件 编写 JSON 服务 成功请求服务后 我会返回一些 JSON 数据 如果请求失败 要么是因为抛出了异常 例如数据库超时 要么是因为请求在某种程度上是错误的 例如作为参数给出了数据库中不存在的 ID 服务应该如何
  • 将 Swagger Java 对象转换为 JSON/YAML

    我需要阅读 修改并重新生成 JSON YAML swagger 文件文档 我已经使用 Swagger Parser 反序列化了一个 JSON 文件 并且有一个 Swagger Java 对象 其中原始 JSON 数据已正确映射 现在 我需要
  • Dynamics CRM 视图中的串联/计算列

    我是 MS Dynamics 的新手 我想知道是否有一种方法可以将列添加到视图中 该视图是其他一些列的串联 例如 Firstname Lastname As Fullname 似乎没有一个明显的 优雅的 解决方案 我看到的所有建议都建议使用
  • 如何替换默认的 SortArgumentResolver

    我需要添加private static final Sort sortById new Sort Sort Direction DESC ID 每一个Pageable 我想 最好的方法是创建装饰器 适配器SortArgumentResolv
  • sqrt(float) 有标准返回类型吗?

    我注意到 appleclang v14 0 0 在将浮点输入传递给时似乎返回单精度浮点cmath s sqrt 当切换到 gcc clang 时 我很惊讶地得到了不同的结果 这是我的最小可重现示例 include
  • Hibernate 与连接表的一对多关系,并在连接表中添加列

    我正在寻找一种在两个表之间建立 OneToMany 关系并在连接表中具有额外属性的方法 但我找不到太多有用的示例 抱歉 如果这听起来很蹩脚 但有人能给我建议一个好方法吗 如果连接表中有其他列 则它不再是连接表 并且您需要一种方法来获取和设置
  • 将对象数组及其属性转换为数组

    我尝试了几种地图功能 但找不到合适的方法来获得我想要的东西 案例如下 Object Results Array 3 Results Array 3 0 2 0 Object id null name Rick upper 0 67 1 Ob
  • 为什么关闭窗口时没有触发componentWillUnmount?

    有人会认为componentWillUnmount https reactjs org docs react component html componentwillunmountin React 会在关闭应用程序时触发 根据文档 comp
  • Firebase、Swift:返回类型上的可空性说明符冲突,“nullable”与现有说明符“nonnull”冲突

    警告已进入火力地堡 3 6 0 Xcode 8 斯威夫特 3 这些是 Firebase 类 class FIROptions class FIRAuthCredential class FIRUserProfileChangeRequest
  • 取消鼠标投影以获得 3D 世界坐标 Libgdx

    我的问题 如何让 3D 模型随着鼠标光标移动 并将模型的 y 位置保持在 0 使用 Libgdx 我尝试过的 我正在尝试让 3D 模型跟随我的光标 目前 我只是让模型随着鼠标的 x 和 y 坐标移动 并添加乘数和相机位置等因素 这不是很好
  • HTML5 电话号码验证与模式

    我正在使用 HTML5 表单验证来验证来自印度的电话号码 印度的电话号码长度为 10 位 以 7 8 或 9 开头 例如 7878787878 9898989898 8678678878 这些电话号码有效 但是 1212121212 343
  • k8s pod 抢占后陷入失败/关闭状态 (gke v1.20)

    TL DR gke 1 20 可抢占节点导致 Pod 僵尸化并导致失败 关闭 我们已经使用 GKE 几年了 集群中包含稳定节点池和可抢占节点池 最近 自 gke v1 20 以来 我们开始看到抢占的 Pod 进入奇怪的僵尸状态 它们被描述为
  • 在 android Nougat Api 24 中以编程方式断开来电

    我将使用 ITelephony aidl 的 endCall 方法以编程方式断开所有传入呼叫 这是我的广播接收器 public class CallBlocker extends BroadcastReceiver String numbe