package com.example.test1;
import android.Manifest;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.util.Random;
public class MainActivity extends AppCompatActivity{
Button SendSMSBt, CheckBt;
EditText InputPhoneNum, InputCheckNum;
String checkNum;
static final int SMS_SEND_PERMISSION = 1;
SharedPreferences pref = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SendSMSBt = (Button) findViewById(R.id.send_sms_button);
InputPhoneNum = (EditText) findViewById(R.id.input_phone_num);
CheckBt = (Button) findViewById(R.id.check_button);
InputCheckNum = (EditText) findViewById(R.id.input_check_num);
int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS);
if(permissionCheck != PackageManager.PERMISSION_GRANTED){
if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.SEND_SMS)){
Toast.makeText(getApplicationContext(),"SMS 권한이 필요합니다", Toast.LENGTH_SHORT).show();
}
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS},SMS_SEND_PERMISSION);
}
SendSMSBt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkNum = numberGen(4,1);
editor.putString("checkNum",checkNum);
sendSMS(InputPhoneNum.getText().toString(),"인증번호 : "+checkNum);
}
});
CheckBt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(pref.getString("checkNum","").equals(InputCheckNum.getText().toString())){
Toast.makeText(getApplicationContext(),"인증 완료 되었습니다.", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(),"인증번호가 일치하지 않습니다.",Toast.LENGTH_SHORT).show();
}
}
});
}
private void sendSMS(String PhoneNumber, String Message){
PendingIntent pi = PendingIntent.getActivity(this, 0,
new Intent(this, MainActivity.class), 0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(PhoneNumber, null, Message, pi, null);
Toast.makeText(getBaseContext(), "메시지가 전송 되었습니다.", Toast.LENGTH_SHORT).show();
}
public static String numberGen(int len, int dupCd){
Random rand = new Random();
String numStr = "";
for(int i=0; i<len; i++){
String ran = Integer.toString(rand.nextInt(10));
if(dupCd==1){
numStr += ran;
}else if(dupCd==2){
if(!numStr.contains(ran)){
numStr += ran;
}else{
i-=1;
}
}
}
return numStr;
}
}
제가 아무리 해도 avd가 자꾸 꺼지면서 디버깅 오류가 나옵니다..ㅠㅠㅠㅠㅠ
코린이인데 한번만 도움주시면 고마울 것 같아요...
도와주세요