Я хочу прослушивать входящие звонки и исходящие вызовы, и этот процесс должен выполняться как service.I сделал операцию, которая прекрасно работает, чтобы распознавать входящие и исходящие вызовы, но мне нужно изменить ее на сервис, так что она может работать в background.I не может узнать, как изменить it.My активность следующим образом:Хотите прослушивать входящие звонки и исходящие звонки
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new TeleListener(), PhoneStateListener.LISTEN_CALL_STATE);
}
class TeleListener extends PhoneStateListener
{
public void onCallStateChanged(int state, String incomingNumber)
{
super.onCallStateChanged(state, incomingNumber);
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE:
//CALL_STATE_IDLE;
Toast.makeText(getApplicationContext(), "CALL_STATE_IDLE", 10000).show();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
//CALL_STATE_OFFHOOK;
Toast.makeText(getApplicationContext(), "CALL_STATE_OFFHOOK", 10000).show();
break;
case TelephonyManager.CALL_STATE_RINGING:
//CALL_STATE_RINGING
Toast.makeText(getApplicationContext(), "CALL_STATE_RINGING", 10000).show();
break;
default:
break;
}
}
}
}
И второй вопрос я могу установить службу без активности в мой телефон.
** от ICS вверх вам нужно, чтобы начать деятельность вашей службы ** Если я собираюсь начать эту услугу с помощью Затем ACTION_BOOT_COMPLETED? Я не хочу использовать какую-либо деятельность. – Anirban
Для ICS и выше вам нужно запустить службу из одной операции, как только загрузка будет выполнена для вызова вашего ресивера. Думаю, это по соображениям безопасности. –
еще одна вещь, если я собираюсь сделать эту операцию для обслуживания, где я должен положить это 'TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService (Context.TELEPHONY_SERVICE); mTelephonyMgr.listen (новый TeleListener(), PhoneStateListener.LISTEN_CALL_STATE); ' – Anirban