挂断电话demo


<!-- 结束通话和打电话的权限 -->
    <uses-permission android:name="android.permission.CALL_PHONE"/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="挂断电话"
        android:onClick="endCall"/>

</RelativeLayout>

 
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void endCall(View v) throws Exception {
        //通过反射调用隐藏的API
            //得到隐藏类的Class对象
        Class c = Class.forName("android.os.ServiceManager");
            //得到方法所对应的Method对象
        Method method = c.getMethod("getService", String.class);
            //调用方法
        IBinder iBinder = (IBinder) method.invoke(null, Context.TELEPHONY_SERVICE);
        //得到接口对象
        ITelephony telephony = ITelephony.Stub.asInterface(iBinder);
        //结束通话
        telephony.endCall();
    }
}

原文地址:https://www.cnblogs.com/znsongshu/p/9357412.html

时间: 2024-10-23 23:40:39

挂断电话demo的相关文章

Android-使用AIDL挂断电话

1.AIDL简单操作 package org.zrf.demo; import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method; import android.app.Service;import android.content.Context;import android.content.Intent;import android.media.AudioManager;import andr

android 手机后台播音乐,设置闹钟,打一通电话,挂断电话后,闹钟与音乐同时响起

修改: frameworks\base\media\java\android\media\MediaFocusControl.java: 1.import packages: import com.android.internal.telephony.ITelephony; import android.os.ServiceManager; 2.增加获取当前Phone Call State的方法getPhoneCallState(): private int getPhoneCallState(

Android 电话自动接听和挂断详解

1.通过aidl及反射实现挂断电话 具体分三步: (1)ITelephony.aidl ,必须新建com.android.internal.telephony包并放入ITelephony.aidl文件(构建后在gen下有ITelephony.java文件,这是aidl生成的接口),文件内容如下: package com.android.internal.telephony; interface ITelephony{ boolean endCall(); void answerRingingCa

解决低电量自动关机时如果有来电自动关断电话

1.问题描述: 低电量时,由于系统已经无法继续提供通话服务,为了不影响通话服务质量或其它问题,因此在自动关机时应自动挂断电话 2.解决思路: 在低电量自动关机时,如果此时有来电,调用挂断电话的接口,挂断电话. 3.实现方式: BatteryService.java private void shutdownIfNoPowerLocked() { // shut down gracefully if our battery is critically low and we are not powe

Android开发之黑名单来电自动挂断

本实例允许用户动态添加号码到黑名单,并实现黑名单来电自动挂断.程序通过创建PhoneStateListener监听器来监听TelephonyManager的通话状态来实现该功能. 由于自Android 10之后Android不再对外公开挂断电话的API,如果需要挂断电话必须使用AIDL与电话管理Service进行通信,并调用服务中的API实现结束电话. 为了调用远程的AIDL Service,开发者需要将Android源码中的如下两个文拷到指定位置: com.android.internal.t

Service-黑名单来电自动挂断

这只是一个学习例程,很多功能有待完善 允许用户动态加载手机通讯录中的电话号码,勾选某些号码作为黑名单,一旦将某些号码设为黑名单,当该号码自动挂断该号码 Android没有对外公开挂断电话的API,如果需要挂断电话,必须使用AIDL与电话管理Service进行通信,并调用服务中的API实现结束通话 为了调用远程的AIDL Service,需要上图所示的两个aidl文件 BlockMain.java  界面提供一个按钮让用户打开对话框来勾选黑名单. public class BlockMain ex

Android 对电话进行监听和挂断

1.添加权限 <!--拨打电话的权限--><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--电话拦截--><receiver android:name="

三星接电话黑屏无法挂断通话

最近发现S4的通话距离感应起出了问题,接电话后直接熄屏,按什么按钮都没有反应.通话结束后只能等对方挂断才会恢复正常,再或者长按9秒电源键强制重启.极大的影响了实用体验.网上搜了下,发现这样的问题还不少.都是什么拆机清洁距离感应器了,送修等解决办法,耗时耗力还费钱.于是请教了两位大神,一位在做手机的预装软件开发,一位在做手机系统的二次开发.两位商量了下,猜测可能是距离感应器感应的结果由于各种原因和最初设定不一样了.让我试一下. 于是:三星输入*#0*#,会出现一大堆测试硬件功能的按钮,第三行中间s

android 接听和挂断实现方式

参考:android 来电接听和挂断 支持目前所有版本 注意:android2.3版本及以上不支持下面的自动接听方法. (会抛异常:java.lang.SecurityException: Neither user xxxxx nor current process has android.permission.MODIFY_PHONE_STATE.) 原因:android2.3版本及以上android.permission.MODIFY_PHONE_STATE权限限制已经改为系统权限. 普通应