package wjsehdghk.calltest111;
import android.content.Context;
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
import com.android.internal.telephony.ITelephony;
import java.lang.reflect.Method;
public class MainActivity extends AppCompatActivity {
TelephonyManager tm = null;
public static final String TAG = "CallStateListner";
public int mRingModeBackup = 0;
public boolean mIsReservedMainActivity = false;
private AudioManager mAudioManager;
SmsManager smsManager;
Boolean call=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mIsReservedMainActivity = true;
Log.d(TAG, "CALL_RINGING_BACKUP_MODE mIsReservedMainActivity : " + mIsReservedMainActivity);
tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
Log.d("DEBUG", "incomingNumber:" + incomingNumber);
switch(state) {
case TelephonyManager.CALL_STATE_IDLE: //전화가 끊긴 상태
Log.d(TAG, "CALL_IDLE");
mAudioManager.setRingerMode(mAudioManager.RINGER_MODE_VIBRATE);
if(call==true){
SendSMS(incomingNumber,"Sorry");
call=false;
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK: //통화중
Log.d(TAG, "CALL_OFFHOOK");
break;
case TelephonyManager.CALL_STATE_RINGING: //전화벨 울리는 중
call=true;
Log.d(TAG, "CALL_RINGING");
Log.d(TAG, "RINGING >> ringMode : " + 55);
//setRingMode(getRingMode());
mAudioManager.setRingerMode(mAudioManager.RINGER_MODE_SILENT);
Log.d(TAG, "RINGING >> Incoming number : " + incomingNumber);
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}, PhoneStateListener.LISTEN_CALL_STATE);
}
private void SendSMS(String phonenumber, String message) {
smsManager = SmsManager.getDefault();
String sendTo = phonenumber;
String myMessage = message;
smsManager.sendTextMessage(sendTo, null, myMessage, null, null);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
GetRingerMode();
SetStartReservedMain(mIsReservedMainActivity);
super.onResume();
}
public void GetRingerMode(){
mRingModeBackup = mAudioManager.getRingerMode();
}
public void SetStartReservedMain(boolean set){
Log.d(TAG, "SetStartReservedMain : "+set);
CallStateListener startReservedMain = new CallStateListener(this);
startReservedMain.setIsReservedMainActivity(set);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onDestroy() {
Log.d(TAG, "CALL_RINGING_BACKUP_MODE 22 : " + mRingModeBackup);
mAudioManager.setRingerMode(mRingModeBackup);
mIsReservedMainActivity = false;
SetStartReservedMain(mIsReservedMainActivity);
super.onDestroy();
}
}