如何拒绝/关闭特定来电号码

2023-12-08

在我的应用程序中,我想阻止特定的传入号码。我进行谷歌搜索,然后执行以下操作阻止来电 - Android。但这段代码对我不起作用。我正在测试安卓2.3.5

我这里没有活动课。 >> 第一类是扩展BroadcastReceiver。

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blocknumber"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />  
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 
<uses-permission android:name="android.permission.PROCESS_INCOMING_CALLS" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <receiver android:name=".MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>
</application>

MainActivity.class

public class MainActivity extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {
    String blockedNumbers[] = { "xxxxxxxxxx", "xxxxxxxxxx" };
    Bundle b = intent.getExtras();
    /*
     * String incommingNumber = b
     * .getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
     */
    String incommingNumber = b.getString("incoming_number");
    Log.e("Incomming number========>", incommingNumber);
    // String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);

    for (int i = 0; i < blockedNumbers.length; i++) {
        Log.e("Incomming >>>>>>>>>>>>>========>", "" + i);
        if (incommingNumber.equalsIgnoreCase(blockedNumbers[i])) {
            TelephonyManager telephony = (TelephonyManager) context
                    .getSystemService(Context.TELEPHONY_SERVICE);
            try {
                Class<?> c = Class.forName(telephony.getClass().getName());
                Method m = c.getDeclaredMethod("getITelephony");
                m.setAccessible(true);
                ITelephony telephonyService = (ITelephony) m
                        .invoke(telephony);
                // telephonyService.silenceRinger();
                telephonyService.endCall();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}
}

IT电话

public interface ITelephony {

    boolean endCall();

    void answerRingingCall();

    //void silenceRinger();

}

最后解决问题, 创建 IDL 接口以获取核心电话服务 包名必须是com.android.internal.电话

文件名 :ITelephony.aidl// 首先我在这里创建ITelephony.java

对于创建.aidl file New > File和写ITelephony.aidl

并按照步骤操作在 Android 中阻止呼叫而无需用户干预的示例。

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

如何拒绝/关闭特定来电号码 的相关文章

随机推荐

  • 有条件地设置 pandas 数据框列值

    这个问题与下面的请求完全相同 但又多了一个转折 Pandas 替换数据框中的列值 pandas 数据框列中值的条件替换 所以 我想设置或有条件地设置 pandas 数据框列值 增加的复杂性是 不是使用字符串常量来寻址数据帧列 df data
  • 在不同的工作簿中捕捉事件

    我想知道是否可以在另一个工作簿中捕捉事件 宏将打开一个工作簿供用户使用 我希望能够在其选择更改事件上运行另一个宏 不可以 代码不能存储在刚刚打开的工作簿中 除了以编程方式将代码添加到打开的工作簿中之外 还有其他方法吗 ThisWorkboo
  • 从表行发布数据,如 json 格式

    这与我上次有关question 注意 我已经在那里得到了一些很好的答案 我正在做一个可以过滤的程序 我没有包含这个问题 因为我认为只要我知道如何从行中获取数据 添加文本就更容易 但令我沮丧的是 到目前为止我还无法编写出一个好的程序 我目前使
  • 如何组合对一个函数的多次调用?

    我想概括我的函数调用 以便能够将这些调用作为参数传递给第二个函数 就我而言 我有多个 ggplots 我将其存储为列表 例如 year plots lt lapply c 2008 2009 2010 2011 2012 2013 2014
  • 将类静态成员定义放入 cpp 文件 - 技术限制?

    当用 C 编码时 我 最喜欢 的烦恼之一是在我的类中声明一些静态变量 然后查看有关未解析的静态变量的编译错误 在早期 我总是害怕它意味着什么 我的意思是经典的例子 比如 Test h class Test private static in
  • 从代码后面添加文本框服务器控件?

    我正在尝试从代码隐藏添加一个新的文本框服务器控件到我的页面 TextBox txt new TextBox txt Width 100 txt Height 100 Page Controls Add txt 当我编写以下代码时 会引发此错
  • 无法在 PHP 中刷新 OAuth2 令牌,授权无效

    我需要制作一个 PHP 脚本来在 Google 日历上创建单个事件 我在设置客户端 ID 客户端密码 开发密钥和创建新事件时没有遇到任何问题 我唯一的问题是 OAuth2 特别是我需要建立永久连接 并且我不想每次运行脚本时都进行身份验证 实
  • 正则表达式 \b 字边界不起作用

    在Android中我有下一个正则表达式 b id b 在这个查询中 即 我想完全替换单词 id SELECT schedules id as idreal FROM schedules WHERE schedules id 12 最终查询
  • 如何使标题框的宽度跨越整个绘图?

    考虑以下 pandas 系列s和情节 import pandas as pd import numpy as np s pd Series np random lognormal 001 01 100 ax s cumprod plot a
  • 在java中更新文本文件的特定部分

    在我的程序中 每次用户提款时 我都需要更新文本文件的 余额 列 我使用了 write 方法和追加方法 但没有效果 用户登录后 该特定行将存储在数组中 PIN AccountNo Balance 1598 01 10 102203 0 950
  • 将多个列表映射到字典

    我有 5 个列表 我想将它们映射到分层字典 假设我有 temp 25 25 25 25 volt 3 8 3 8 3 8 3 8 chan 1 1 6 6 rate 12 14 12 14 power 13 2 15 3 13 8 15 1
  • Mule ESB - 如何使用 POST 方法创建 HTTP 请求(一起发送参数)

    简而言之 我想使用 POST 方法将几个参数 例如 user admin key 12345678 发布到 PHP 页面 例如 localhost post debug php 该脚本将读取 POST 值并执行任何操作 我的问题是 1 如何
  • strtotime 的正确输入值

    我想通过以下语句转换日期 date date d M Y H m strtotime date 打印出来了09 Sep 2012 11 09当我尝试 date 的各种值时 11 00 AM Sunday 09 Sep 2012 Sunday
  • Android Phonegap Compilations 在应用程序底部添加了不应该存在的栏?

    我到处寻找并尝试了几乎所有方法 但我无法摆脱出现在 PhoneGap 应用程序底部的随机黑条 这是我运行应用程序时看到的内容 有趣的是 如果我最小化应用程序然后再次打开它 它会自动修复显示并且底部栏消失 但为什么 如何让它从应用程序打开的那
  • 将第一个 div 向左对齐,随后的 div 向右对齐

    我希望在同一水平线上显示三段文本 如下所示 Chapter one Language English 我在用 代表窗口的最左边或最右边 这就是我现在所拥有的 div div Chapter one div div Language div
  • 使用 VBScript 更改快捷方式中的目标

    我正在尝试创建 VBScript 来更改链接中的目标 目前的目标是 C Program Files Hyland Application Enabler AEClient exe 我希望新的目标是 C Program Files Hylan
  • 自定义任务运行程序方法抛出 ArgumentException

    由于 CultureInfo 没有从一个线程复制到另一个线程 所以我制定了以下方法来为我做这件事 public static StartCustomTask Action action TaskCreationOptions tco Tas
  • 使用 Exchange 服务和 OAuth 订阅推送通知时出现 401 未经授权

    我正在尝试使用 oauth 访问 EWS 托管 API 订阅推送通知 如下所示 var authenticationTask await authenticationContext AcquireTokenAsync https outlo
  • 测试套件运行失败 TypeError: Cannot set property 'content' of null 在 Jest 中运行

    我正在基于 Vue 的项目编写测试 并且我是 Framwork Jest 和 Vue 测试 Utils 的新手 我还没有找到类似问题的解决方案 我尝试过几个组件 但错误总是类似 示例 test js import shallowMount
  • 如何拒绝/关闭特定来电号码

    在我的应用程序中 我想阻止特定的传入号码 我进行谷歌搜索 然后执行以下操作阻止来电 Android 但这段代码对我不起作用 我正在测试安卓2 3 5 我这里没有活动课 gt gt 第一类是扩展BroadcastReceiver 清单文件