挂断电话demo-LMLPHP


  <!-- 结束通话和打电话的权限 -->
    <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();
    }
}
05-11 22:27