안드로이드 SMS보내기.
- 1번이 권한 부여가 없으면 프로그램이 이상종료한다. try-catch를 통해 Error원인을 찾고 조치가 필요하다.
- 3번은 정보는 Internet에 많으니 참고.
1) 권한 부여 Permission 중요!( 참조 https://satisfactoryplace.tistory.com)
static final int SMS_RECEIVE_PERMISSON=1;
//권한이 부여되어 있는지 확인
int permissonCheck= ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS);
if(permissonCheck == PackageManager.PERMISSION_GRANTED){
Toast.makeText(getApplicationContext(), "SMS 수신권한 있음", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "SMS 수신권한 없음", Toast.LENGTH_SHORT).show();
//권한설정 dialog에서 거부를 누르면
//ActivityCompat.shouldShowRequestPermissionRationale 메소드의 반환값이 true가 된다.
//단, 사용자가 "Don't ask again"을 체크한 경우
//거부하더라도 false를 반환하여, 직접 사용자가 권한을 부여하지 않는 이상, 권한을 요청할 수 없게 된다.
if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.RECEIVE_SMS)){
//이곳에 권한이 왜 필요한지 설명하는 Toast나 dialog를 띄워준 후, 다시 권한을 요청한다.
Toast.makeText(getApplicationContext(), "SMS권한이 필요합니다", Toast.LENGTH_SHORT).show();
ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.RECEIVE_SMS}, SMS_RECEIVE_PERMISSON);
}else{
ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.RECEIVE_SMS}, SMS_RECEIVE_PERMISSON);
}
}
2) 권한 부여 "AndroidMainifest.xml"
"<uses-permission android:name="android.permission.SEND_SMS" />"
"<uses-permission android:name="android.permission.RECEIVE_SMS" />"
"<uses-permission android:name="android.permission.READ_PHONE_STATE" />"
3) SMS 전송
String phoneNo = "010XXXXXXXX";
String sms = "폰에서 자동으로 보내는 메시지 입니다.";
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(getApplicationContext(), "전송 완료!", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "전송 오류!", Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();//오류 원인이 찍힌다.
e.printStackTrace();
}
'작업 > Android' 카테고리의 다른 글
PC(MFC:Unicode)에서 Android로 한글 전송 (0) | 2019.10.31 |
---|---|
초기 키패드 내리기 / 화면 회전 Reset 방지 (0) | 2019.10.30 |
Android Socket 생성 - 주의점!!! (0) | 2019.10.28 |