как закончить мой исходящий звонок. - PullRequest
5 голосов
/ 23 февраля 2012

с statrtActivity(callIntent), звонок идет, а затем мне нужно подождать несколько секунд и завершиться автоматически. чтобы закончить мой звонок, я взял mycalss extends Broadcastreceiver, а затем onreceive(), который я реализовал. В этом методе мне нужно только установить старый номер, а newnumber и toast - печать. То, что я хочу точно, чтобы закончить вызов, что мне нужно написать. а как вызвать метод onreceive из моего класса? Пожалуйста, помогите мне. я никуда не попал.

 @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 ]

3 голосов
/ 16 марта 2012

Вы можете попробовать это:

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();
}
0 голосов
/ 03 апреля 2014

вы просто прерываете исходящий звонок, используя следующий код

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);

        }
    }
}
...