如何结束我的拨出电话。

时间:2012-02-23 06:55:53

标签: android android-intent broadcastreceiver

statrtActivity(callIntent),呼叫然后我必须等待几秒钟并自动结束。为了结束我的电话,我已经采取mycalss扩展Broadcastreceiver然后在onreceive()我实现了。在那个方法我只得设置旧数字和newnumber和吐司正在打印。 我想要的是结束我需要写的东西。以及如何从班上打电话给接受方法?请帮助我。我没有到达任何地方。

 @Override
                public void onReceive(Context context, Intent intent) {                                 
                    final String oldNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);         
                    this.setResultData(newPhNnumber);                                                   
                    final String newNumber = this.getResultData();
                    if((newNumber!=null)&&(newNumber!=oldNumber))
                    {
                    String msg = "Intercepted outgoing call. Old number " + oldNumber + ", new number " + newNumber;
                    Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
                    this.abortBroadcast();----> what it does?
                }

2 个答案:

答案 0 :(得分:3)

你可以试试这个:

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
    Class c = Class.forName(tm.getClass().getName());
    Method m = c.getDeclaredMethod("getITelephony");
    m.setAccessible(true);
    ITelephony telephonyService = (ITelephony) m.invoke(tm);

    telephonyService.endCall();

} catch (Exception e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

您只需通过以下代码中止拨出电话

即可
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

    if (intent.getAction()
            .equals("android.intent.action.NEW_OUTGOING_CALL")) {

        phoneNo = intent
                .getStringExtra(Intent.EXTRA_PHONE_NUMBER);

        if (phoneNo.isBlocked(blockNo)) {
            setResultData(null);

        }
    }
}