如何以编程方式断开传出呼叫

Bha*_*ath 0 android

我已经使用以下代码以编程方式断开调用,但它无法正常工作.

private void callDisconnect(){ 
    try{ 
        TelephonyManager manager = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE); 
        Class c = Class.forName(manager.getClass().getName()); 
        Method m = c.getDeclaredMethod("getITelephony"); 
        m.setAccessible(true); 
        ITelephony telephony = (ITelephony)m.invoke(manager); 
        telephony.endcall(); 
    } catch(Exception e){ 
        Log.d("",e.getMessage()); 
    } 
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我吗?我需要更改代码还是什么......?

ρяσ*_*я K 5

要以编程方式断开呼叫,必须ITelephony.AIDL在项目中添加文件.如果已添加,则包名必须为com/android/internal/telephony/ITelephony.AIDL:有关详细信息,请参阅阻止来电.从这里下载AIDL文件.

断开endCall();ITelephony 的呼叫使用方法


小智 5

只需使用此广播接收器即可.我在我的一个应用程序中测试了它并且它完美地工作.

public class MyBroadcastReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, final Intent intent)
    {


        if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))
        {
            String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER);

            if (phoneNumber.equals("123456"))
            {
                if (getResultData() != null)
                {

                    setResultData(null);
                }


            }

        }


    }

}
Run Code Online (Sandbox Code Playgroud)