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가 자꾸 꺼지면서 디버깅 오류가 나옵니다..ㅠㅠㅠㅠㅠ
코린이인데 한번만 도움주시면 고마울 것 같아요...
도와주세요