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

Я работаю над приложением для Android, которое может сделать пропущенный вызов на другом телефоне определенной продолжительности, например, 5, 10 секунд, я поражен, когда вызов осуществляется через программу на определенный номер, моя программа теряет контроль, как я могу закончить после некоторого фиксированного нет . секунд после совершения звонка, SDK общего назначения позволяют только инициировать вызов, а не для аборта.

Я новичок в Android и провел глубокий поиск в сети по этому поводу, некоторые люди ссылаются на использование отражения JAVA и внутренней телефонии для этого, но я не смог этого сделать, хотя я сделал это на платформе Symbian s-60.

Любое предложение?


person Deepender Singla    schedule 28.12.2012    source источник


Ответы (2)


использовать интерфейс telephony.aidl, он состоит из метода с именем endCall(), который используется для завершения текущего вызова

запуск таймера в методе onReceive() широковещательного приемника, когда ваш вызов находится в состоянии Ringing или в состоянии off-hook

используйте метод endCall() в этом таймере

Дайте мне знать, если вам нужно больше вещей от меня

person Abhinav Singh Maurya    schedule 28.12.2012

    import android.content.BroadcastReceiver;
     import android.content.Context;
     import android.content.Intent;
     import android.util.Log;
     import android.widget.Toast;

     public class OutgoingCallReceiver extends BroadcastReceiver {


         @Override
         public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals(Intent.NEW_OUTGOING_CALL))
     {
       abortBroadcast ();
       }
    }
      }

Требует

<uses-permission android:name="android.permission.CALL_PHONE"/>
person TNR    schedule 28.12.2012
comment
Я сделал следующий код, но он не работает, вызов не прерывается [ссылка] (pastebin.com/JSB1tKFQ ), помогите пожалуйста - person Deepender Singla; 29.12.2012
comment
эй, что вы реализуете? BroadCast Receiver никогда не может быть вызван с помощью startActivity. Просто сошлитесь на несколько примеров того, как вызвать действие Receiver. вам нужно использовать sendBroadCast() для отправки действия получателя. - person TNR; 29.12.2012
comment
извините за то, что сделал что-то неправильно раньше, теперь я прошел через базовый код, реализованный в широковещательном приемнике, который также печатает исходящий номер, он делает это точно, но вызов не прерывается, код здесь ссылка - person Deepender Singla; 30.12.2012
comment
@DeependerSingla Я просмотрел ваш код. Класс BroadCastReceiver будет отвечать за все действия. поэтому он может распечатать ваш журнал. Пожалуйста, просто добавьте код печати журнала вашего номера телефона перед abortBroadcast() внутри цикла if. если он печатает, то это было бы странно. Если не печатает, вы должны добавить действие приемника внутри тега приемника в AndroidManifest.xml. Надеюсь, это должно сработать для вас. - person TNR; 31.12.2012
comment
Это также печатает код внутри цикла, я пробовал другой подход с использованием внутренней телефонии, даже если он не работает, можете ли вы попробовать [ссылка] (stackoverflow. com/q/14092141/793806) - person Deepender Singla; 31.12.2012