수신 전화 및 발신 전화를 듣고 싶습니다.이 프로세스는 서비스로 실행되어야합니다. 수신 및 발신 통화를 인식하기 위해 잘 작동하는 작업을 만들었지 만 다음으로 변경해야합니다.수신 전화 및 발신 전화를 듣고 싶습니다.
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;
}
}
}
}
을 그리고 내 두 번째 질문는 내 휴대 전화에 활동하지 않고 서비스를 설치할 수 있습니다 : 그것은 it.My 활동을 변경하는 방법을 찾을 수 없습니다 background.I으로 실행할 수 있도록 서비스는 다음과 같습니다.
을 실행 다른 작업을 만들 확인 그러면 ACTION_BOOT_COMPLETED? 나는 어떤 활동도 사용하고 싶지 않다. – Anirban
ICS 이상의 경우, 수신기를 호출하기 위해 부팅을 위해 한 번 활동에서 서비스를 시작해야합니다. 나는 이것이 보안상의 이유라고 생각한다. –
서비스를 제공하기 위해이 활동을 수행하려면 다른 것을 추가해야합니다. 'TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService (Context.TELEPHONY_SERVICE); mTelephonyMgr.listen (새 TeleListener(), PhoneStateListener.LISTEN_CALL_STATE); – Anirban