package com.mingle.myapplication.service; import android.app.Service; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.os.IBinder; import android.telephony.PhoneStateListener; import android.telephony.SmsManager; import android.telephony.TelephonyManager; import android.util.Log; import android.widget.Toast; import com.mingle.myapplication.model.SharedPreferenceUtil; /** * Created by multimedia on 2016-05-16. */ public class CallService extends Service { TelephonyManager tm = null; private AudioManager mAudioManager; SmsManager smsManager; Boolean call=false; @Override public void onCreate() { mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); tm.listen(new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if(SharedPreferenceUtil.getSharedPreference(getApplicationContext(), "CallServiceFrag")==1) { Toast.makeText(getApplicationContext(), "전화 차단 후 메시지 전송기능 사용", Toast.LENGTH_SHORT).show(); Log.d("DEBUG", "incomingNumber:" + incomingNumber); switch (state) { case TelephonyManager.CALL_STATE_IDLE: //전화가 끊긴 상태 if (call == true) { mAudioManager.setRingerMode(mAudioManager.RINGER_MODE_VIBRATE); if(SharedPreferenceUtil.getSharedPreference(getApplicationContext(), "MessageChecked")==1) { SendSMS(incomingNumber, "죄송합니다. 지금 전화를 받을 수 없습니다."); } Toast.makeText(getApplicationContext(), "죄송합니다. 지금 전화를 받을 수 없습니다." , Toast.LENGTH_SHORT).show(); call = false; } break; case TelephonyManager.CALL_STATE_OFFHOOK: //통화중 break; case TelephonyManager.CALL_STATE_RINGING: //전화벨 울리는 중 call = true; mAudioManager.setRingerMode(mAudioManager.RINGER_MODE_SILENT); break; default: break; } } super.onCallStateChanged(state, incomingNumber); } }, PhoneStateListener.LISTEN_CALL_STATE); return super.onStartCommand(intent, flags, startId); } private void SendSMS(String phonenumber, String message) { try { smsManager = SmsManager.getDefault(); String sendTo = phonenumber; String myMessage = message; smsManager.sendTextMessage(sendTo, null, myMessage, null, null); } catch (IllegalArgumentException e) { Log.d("전화 받고 끊을 때", "Exception"); } } @Override public void onDestroy() { super.onDestroy(); Toast.makeText(getApplicationContext(), "전화 차단 후 메시지 전송기능 사용 안함", Toast.LENGTH_SHORT).show(); SharedPreferenceUtil.putSharedPreference(getApplicationContext(), "CallServiceFrag", 0); Log.d("Service Destroy", "콜서비스 종료"); stopSelf(); } @Override public IBinder onBind(Intent intent) { return null; } }