2

Я хочу определить, когда начальный и исходящий исходящий вызов был начат и закончился, и хотите запустить службу, когда вызов запущен и завершение службы, когда вызов закончился.Обнаружение Исходящий вызов начался и закончился

Вот код, который я получил от другого вопроса, но не знаю, где положить начало и остановить активность, чтобы заставить его работать.

public class CallListener { 

private CallStateListener callStateListener = null; 
private OutgoingReceiver outgoingReceiver = null; 

public CallListener(Context context) { 
this.context = context; 

callStateListener = new CallStateListener(); 
outgoingReceiver = new OutgoingReceiver(); 
} 

private class CallStateListener extends PhoneStateListener { 
@Override 
public void onCallStateChanged(int state, String incomingNumber) { 
    switch (state) { 
    case TelephonyManager.CALL_STATE_IDLE: 
    doSomething1(); 
    break; 
    case TelephonyManager.CALL_STATE_OFFHOOK: 
    doSomething2(); 
    break; 
    case TelephonyManager.CALL_STATE_RINGING: 
    doSomething3(); 
    break; 
    } 
    } 
    } 

    public class OutgoingReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    doSomething4(); 
} 
} 

public void start() { 
telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE); 

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL); 
context.registerReceiver(outgoingReceiver, intentFilter); 
} 

public void stop() { 
telephonyManager = (TelephonyManager)  context.getSystemService(Context.TELEPHONY_SERVICE); 
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_NONE); 

context.unregisterReceiver(outgoingReceiver); 
}}  

А вот добавить в сервис, чтобы сделать его работу:

public class MyService extends Service { 

private CallListener call = null; 

public MyService() { 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
call = new CallListener(getApplicationContext()); 
call.start(); 
return(START_STICKY); 
} 

@Override 
public void onDestroy() { 
call.stop(); 
call.onDestroy(); 
} 

@Override 
public IBinder onBind(Intent intent) { 
return null; 
} 
} 

спасибо за любую помощь, я могу знать, что это легко, но я просто не знаю.

Спасибо и имейте действительно хороший день .. !! :)

ответ

0

я уже искал, как обнаружить событие вызова, как звонкое/холостой ход/и т.д. ... нет успеха :( К сожалению, нет никакого решения в Android в это время ...

Это хорошо разъяснено в этом предыдущем вопросе/кратком сообщении:

Detecting outgoing call answered on Android

Смежные вопросы