`
mickey_hou
  • 浏览: 246232 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android电话状态抓取—2

阅读更多
private PhoneCallListener mPhoneCallListener;
   
    private TelephonyManager mTelephonyManager;
   
    //private PhoneStateListener mPhoneStateListener;
    private AudioManager mAudioManager;
   
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        mPhoneCallListener = new PhoneCallListener();
        mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        mTelephonyManager.listen(mPhoneCallListener,PhoneCallListener.LISTEN_CALL_STATE);
        //mTelephonyManager.listen(mPhoneCallListener, PhoneCallListener.LISTEN_SERVICE_STATE);
        //mTelephonyManager.listen(mPhoneCallListener, PhoneCallListener.LISTEN_DATA_CONNECTION_STATE);
    }
   
    /**
     * 利用JAVA反射机制调用ITelephony的endCall()结束通话。
     */
    private void endCall()
    {
        // 初始化iTelephony
        Class<TelephonyManager> c = TelephonyManager.class;
        Method getITelephonyMethod = null;
        try
        {
            // 获取所有public/private/protected/默认
            // 方法的函数,如果只需要获取public方法,则可以调用getMethod.
            getITelephonyMethod = c.getDeclaredMethod("getITelephony",(Class[]) null);
            // 将要执行的方法对象设置是否进行访问检查,也就是说对于public/private/protected/默认
            // 我们是否能够访问。值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false
            // 则指示反射的对象应该实施 Java 语言访问检查。
            getITelephonyMethod.setAccessible(true);
            ITelephony iTelephony = (ITelephony) getITelephonyMethod.invoke(mTelephonyManager,(Object[]) null);
            iTelephony.endCall();
            Log.v(this.getClass().getName(), "endCall......");
        }
        catch (Exception e)
        {
            Log.e(this.getClass().getName(), "endCallError", e);
        }
    }
分享到:
评论

相关推荐

    Spreadtrum_Android_8805和8810抓取LOG环境安装和方法V1.0.5.doc

    2. **电话、消息等log**:涉及到电话、短信、SIM卡联系人、PIN码和STK服务的问题,需要特定的log来定位问题所在。 3. **异常情况下的log**:设备出现“冻屏”、“定屏”、“变砖”等故障时,抓取当时的log有助于找...

    使用Android实现联网

    - `android.telephony`包:包含与电话网络交互的类,如GSM短信发送。 2. **简单的网络示例** - 创建一个简单的应用,展示如何从网页抓取文本: - UI部分:通常包含一个EditText用于输入URL,一个Button触发网络...

    CELLID_Android

    1. TelephonyManager类:提供对手机通话状态和电话功能的访问,包括getCellLocation()方法,它可以返回一个GsmCellLocation或CdmaCellLocation对象,其中包含了CELLID。 2. AndroidManifest.xml:需要在文件中添加...

    Android 恶意代码

    2. 激活方法:恶意代码的激活往往依赖于特定的触发条件,如用户操作、特定时间或设备状态等。一些恶意代码可能需要通过远程服务器指令激活,而另一些可能在特定条件下自动激活。 3. 权限请求:与正常应用相比,恶意...

    Spreadtrum Android 8810_6820 FAQ 1207

    **2.3 如何抓取Android log** - **抓取方法**: 1. 连接设备到PC。 2. 执行`adb logcat`命令来抓取日志。 **2.4 如何抓取Modem arm log** - **抓取方法**: 1. 需要特定的工具或命令行接口来访问Modem的ARM...

    Spreadtrum Android 8810_6820 FAQ 1207.pdf

    - 使用如adb等工具抓取Android log是调试Android应用程序的基础。 **2.4 如何抓取Modem arm log** - 抓取Modem arm log对于分析通信相关的问题至关重要。 **2.5 如何抓取Mocordsp log** - Mocordsp log包含了DSP...

    通讯录(头像,名字,号码获取,黑名单添加及自动重拨)

    2. **名字和号码获取**:名字是识别联系人的基本要素,而电话号码则是与他们通信的主要方式。在Android或iOS系统中,开发者可以利用Contacts API来读取和写入联系人信息,包括名字和电话号码。同时,为了保护用户...

    SafeKeyBoard.zip

    6. 键盘状态管理:在实际应用中,键盘可能需要根据当前输入域的类型(如密码、电话号码等)动态改变其显示的内容。这需要维护一个键盘状态管理器,根据上下文环境切换键盘布局。 7. 安全性考虑:"SafeKeyBoard" 这...

    MTK android 问题

    ### MTK Android 问题解析与解决方案 #### 一、牙买加卡片问题及解决方法 **问题描述**:用户在使用牙买加地区的SIM卡时,可能会遇到无法正确显示Delivery Report的情况。 **解决方法**: - **分析原因**:此类...

    Tasker_Pro_v5.9.2_beta3.apk

    * 3RD派对:Android通知程序,Astrid,BeyondPod,JuiceDefender数据/切换,温和警报,NewsRob,OfficeTalk,SleepBot,SMS Backup +,TeslaLED,WidgetLocker ******状态******飞机模式,BT已连接,日历输入,对接...

    安卓版的学校办公资源管理 已修改.doc

    2. **办公电话**:集成杭电的官方电话簿,方便师生查找联系信息。 3. **校园地图**:如果可能,集成地图API(如高德或百度地图)以提供校园导航功能。 4. **空闲教室查询**:此功能为核心,需实时更新教室使用情况...

    Tasker Pro 5.7.0.apk

    *媒体:媒体按钮事件(抓取),媒体播放器控制,音乐文件/目录,播放/前进/后退/停止,照片/系列/时间系列,录制音频,录制音频停止,铃声,扫描卡 * MISC :(广播)动作意图,组件意图,获取位置,GPS状态(或...

Global site tag (gtag.js) - Google Analytics