如何将 com.android.internal.telephony.ITelephony 导入到 Android 应用程序

2024-04-15

我想挂断来电 我检测到它然后我想挂断它。

问题是这样的:com.android.internal.telephony.ITelephony没有解决。

我尝试添加包com.android.internal.telephony到我的应用程序并创建界面:

package com.android.internal.telephony;

public interface ITelephony {      

    boolean endCall();     

    void answerRingingCall();      

    void silenceRinger(); 

}

但通话并未结束。

在这里,我检测到呼叫,显示 toast(已显示),然后尝试挂断,但正如我首先所说,没有com.android.internal.telephony.ITelephony在我创建该包之前:

private class CallStateListener extends PhoneStateListener {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                // called when someone is ringing to this phone
                Toast.makeText(ctx, "Incoming: " + incomingNumber, Toast.LENGTH_LONG).show();
                 try{
                        TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
                        Class c = Class.forName(tm.getClass().getName());
                        Method m = c.getDeclaredMethod("getITelephony");
                        com.android.internal.telephony.ITelephony telephonyService = (com.android.internal.telephony.ITelephony) m.invoke(tm);  

                        telephonyService = (com.android.internal.telephony.ITelephony) m.invoke(tm);
                        telephonyService.silenceRinger();
                        telephonyService.endCall();
                    }catch (Exception e) {
                        e.printStackTrace();

                    }
                break;
            }
        }
    }

我的清单和权限:

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

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <service
            android:name=".CallDetectService"
            android:enabled="true"
            android:exported="false" >
        </service>
    </application>



</manifest>

The ITelephony接口是内部的,因此您无法获得对其的标准引用。你could始终使用反射,即

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

Method m1 = tm.getClass().getDeclaredMethod("getITelephony");
m1.setAccessible(true);
Object iTelephony = m1.invoke(tm);

Method m2 = iTelephony.getClass().getDeclaredMethod("silenceRinger"); 
Method m3 = iTelephony.getClass().getDeclaredMethod("endCall"); 

m2.invoke(iTelephony);
m3.invoke(iTelephony);

但无论哪种方式,这些方法都需要MODIFY_PHONE_STATE权限,只能授予系统应用程序。所以恐怕无论如何也行不通。

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

如何将 com.android.internal.telephony.ITelephony 导入到 Android 应用程序 的相关文章

  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • popupBackground 与 Material Design 相关的问题

    我一直致力于将我的应用程序更新为 Material Design 我有一个使用选项卡的应用程序 由于某种原因 每当我使用 android popupBackground 设置下拉菜单颜色时 它就会崩溃 我设置了一个带有选项卡的默认项目并使用
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 使用 cordova cli 构建时的 Android 安装位置

    我正在使用 cordova CLI 工具构建一个大型 cordova phonegap 应用程序 我需要 AndroidManifest xml 文件中的 installLocation 具有 installLocation auto 或p
  • 与 Dagger 一起使用时,Espresso 生成 FileNotFoundException

    我一直在研究旧版 Android 应用程序 尝试为其添加测试和适当的架构 该应用程序有一个主要LaunchActivity它在启动时运行一系列检查 最初 该活动使用 Dagger 来 注入依赖项 活动将使用它来运行检查 但效果相当糟糕 我转
  • 在带有 Protocol Buffers 的项目中使用 Proguard 有什么特点?

    我有一个使用 Google Protocol Buffers 的项目 一旦我尝试用 ProGuard 对其进行混淆 似乎 protobuf 会导致问题 我将所有自己的类打包成mybuildedclasses jar 谷歌代码被打包成prot
  • 在 Java 中创建 XML 文件的最佳方法是什么?

    我们目前使用 dom4j 来创建 XML 文件 不过 我猜现在有更好的东西了 如果我们使用的是 Java 1 6 或更高版本 那么在编写 XML 文件时最好使用什么类 运行速度最快 使用简单 我不需要构建一个 DOM 然后编写整个 DOM
  • 在 java 中运行外部应用程序但不要等待它完成

    我正在用java编写一个应用程序 允许我运行其他应用程序 为此 我使用了 Process 类对象 但当我这样做时 应用程序会等待进程结束 然后再退出 有没有办法在 Java 中运行外部应用程序 但不等待它完成 public static v
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • java中使用多线程调用同一类的不同方法

    我有一个类 如下所示 具有三种方法 public class MyRunnable implements Runnable Override public void run what code need to write here to c
  • 使用 PC/SC 读卡器验证 Ultralight EV1

    我在尝试使用 Java 中的 PC SC 读卡器 特别是 ACR1222L 验证 Ultralight EV1 卡时遇到问题 我能够使用 ISO 14443 3 标签的相应 APDU 在不受保护的标签上进行写入和读取 但是 我找不到运行 P
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • 在实现使用原始类型的接口时如何避免警告?

    我正在实施流程工厂 http help eclipse org ganymede index jsp topic org eclipse platform doc isv reference api org eclipse debug co
  • 为什么java.lang.Cloneable不重写java.lang.Object中的clone()方法?

    Java 规范java lang Cloneable接口将自身定义为表示扩展它的任何对象也实现了clone 休眠的方法java lang Object 具体来说 它说 一个类实现了Cloneable接口来指示java lang Object
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object
  • java中void的作用是什么?

    返回类型 方法返回值的数据类型 如果方法不返回值 则返回 void http download oracle com javase tutorial java javaOO methods html http download oracle

随机推荐

  • 有什么例子可以说明了解 C 语言可以让我用任何其他语言编写更好的代码?

    在 Stack Overflow 播客中 Joel Spolsky 不断地抱怨 Jeff Atwood 不知道如何用 C 语言编写代码 他的说法是 了解 C 可以帮助你编写更好的代码 他还总是使用某种涉及字符串操作的故事 以及了解 C 如何
  • Azure 数据工厂 v2:活动执行管道输出

    有没有办法在活动 执行管道 中引用已执行管道的输出 即 主管道按顺序执行2个管道 第一个管道生成一个自己创建的 run id 需要将其作为参数转发到第二个管道 我已阅读文档并检查主管道是否记录了第一个管道的输出 但看起来这不可能直接实现 到
  • 断言:exportArchive:“Test.app”需要配置文件

    当我尝试在 Xcode9 中使用 Xcode 服务器集成持续集成时 我可以成功创建 BOT 并尝试集成 然后我总是收到类似的错误 断言 exportArchive Test app 需要配置文件 如何解决这个问题 我遇到了同样的问题 并按照
  • torch.mm、torch.matmul 和 torch.mul 有什么区别?

    阅读完 pytorch 文档后 我仍然需要帮助来理解之间的区别torch mm torch matmul and torch mul 由于我不完全理解它们 所以我无法简明地解释这一点 B torch tensor 1 1207 0 3137
  • Java 中保存最后 N 个元素的大小受限队列

    关于 Java 库的一个非常简单快速的问题 是否有一个现成的类可以实现Queue具有固定的最大大小 即它始终允许添加元素 但它会默默地删除头元素以为新添加的元素提供空间 当然 手动实现它很简单 import java util Linked
  • 如何检测 highcharts 中的缩放事件?

    是否可以检测 Highcharts 中的缩放事件 我的用例是 我有一些图表外部的状态 当用户放大其中的一部分时 我想检测 x 轴上的新时间范围并更新相应的外部状态 你有没有尝试过高图表API http api highcharts com
  • 需要帮助解决 sorl-thumbnail 错误:“‘thumbnail’不是有效的标签库:”

    我一直在绞尽脑汁试图解决这个问题 我已经尝试了一切 但我没有任何想法 我不断看到这个错误 异常值 thumbnail 不是有效的标签库 无法从 django templatetags thumbnail 加载模板库 没有名为 sorl th
  • std::initializer_list 和引用类型

    Can a std initializer list包含引用类型 右值和左值 或者是否必须使用指针或引用包装器 例如std ref EDIT 也许需要更多澄清 我有一个成员变量 std vector
  • R 中的 Unicode 下标

    我想写 sigma 2 i使用 unicode 我可以得到三分之二的方法 u03C3 U00B2 我一生都无法弄清楚如何添加下标 根据在这个网站上我得到了上标 2 的 unicode http www fileformat info inf
  • Silex - app->json() 以字符串形式返回整数数据

    我刚刚开始使用 Silex 来帮助我构建一个从 MySQL 数据库返回数据的 Restful API 以前在使用 php 和 mysql 时 我注意到 MySQL 会在我的文件中将整数作为字符串返回json encode 功能 它会在我的所
  • iTunes Connect 上的销售统计数据多久更新一次? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的应用程序今天被 Apple 接受 我正在尝试计算它已被下载了多少次 有谁知道 iTunes Con
  • npm install git+ssh 在 docker (node16) 中失败

    谁能解释一下为什么要从node 14 alpine to node 16 alpine会导致npm安装失败吗 gt 8 10 RUN mount type ssh npm i 14 14 27 npm ERR code 128 14 14
  • InProc 会话数据消失

    我大约一周前才注意到这一点 我正在存储有关用户正在玩的当前谜题的数据 www wikipediamaze com 如下所示 HttpContext Current Session Add puzzleInfo currentPuzzleIn
  • 使用 jQuery 将宽度设置为百分比

    如何使用 jQuery 将 div 的宽度设置为百分比 使用width http api jquery com width 功能 div somediv width 70 将转向 div div into div style width 7
  • 如何将CUDA时钟周期转换为毫秒?

    我想用一些代码来测量时间within我的内核需要 我已经关注了这个问题 https stackoverflow com questions 11209228 timing different sections in cuda kernel连
  • 如何将图像从黑色转换为白色,反之亦然

    我有一张黑白的 jpg 图片 我想将黑色部分转换为白色 将白色部分转换为黑色 黑色像素转换为白色 反之亦然 MATLAB并再次另存为jpg文件 我已经尝试过这段代码 但它只是在白页上给了我一条黑线 im imread Export00000
  • JPA/Hibernate + HQL/JPQL:选择带有 BigDecimal 参数的 DTO

    我们使用 JPA 和 hibernate 作为实现 假设我有以下 DTO public class SupplierInfoDto private String supplierName private BigDecimal remaini
  • iOS 11 SceneKit hitTest:选项:失败

    我在 iOS 11 上的 SceneKit 中使用 hitTest options 时遇到了困难 在地图应用程序中 我有一个地形节点 使用 hitTest options 我能够长时间通过触摸屏幕来发现地形上的一个点 它仍然可以在 iOS
  • 反应路由器和 Express 冲突

    我有我想要 React Router 处理的路径 而且我还有一个 Express API 后端 我从 React 应用程序调用它来执行一些安全的 API 调用 希望在这里提供应用程序 id 应用程序的唯一 URL 我使用 ID 从 Reac
  • 如何将 com.android.internal.telephony.ITelephony 导入到 Android 应用程序

    我想挂断来电 我检测到它然后我想挂断它 问题是这样的 com android internal telephony ITelephony没有解决 我尝试添加包com android internal telephony到我的应用程序并创建界