Я хочу определить, когда начальный и исходящий исходящий вызов был начат и закончился, и хотите запустить службу, когда вызов запущен и завершение службы, когда вызов закончился.Обнаружение Исходящий вызов начался и закончился
Вот код, который я получил от другого вопроса, но не знаю, где положить начало и остановить активность, чтобы заставить его работать.
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;
}
}
спасибо за любую помощь, я могу знать, что это легко, но я просто не знаю.
Спасибо и имейте действительно хороший день .. !! :)