public class SMS extends Login {
String SENT;
String DELIVERED;
PendingIntent sentPI;
PendingIntent deliveredPI;
public void sendSMS(String phoneNumber, String message) {
// 실질적인 보내는 메소드
SENT = "SMS_SENT";
DELIVERED = "SMS_DELIVERED";
sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
registerReceiver(new BroadcastReceiver() {
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
// Toast.makeText(getBaseContext(), "SMS 전송",
// Toast.LENGTH_SHORT).show();
// 문자전송성공시 뜨는 문구
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(), "제네릭을 찾을 수 없습니다.", Toast.LENGTH_SHORT).show();
// 문자전송 실패시 제네릭 실패
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "서비스 중이 아닙니다.", Toast.LENGTH_SHORT).show();
// 서비스 실패
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(), "PDU를 찾을 수 없습니다.", Toast.LENGTH_SHORT).show();
// 에러PDU실패
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "수신자를 잡을 수 없습니다.", Toast.LENGTH_SHORT).show();
// 수신자가 꺼져있음
break;
}
}
}, new IntentFilter(SENT));
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
// Toast.makeText(getBaseContext(), "SMS delivered",
// Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
// Toast.makeText(getBaseContext(), "SMS not delivered",
// Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}
}
안드로이드 내부db로 전화번호는 따로 저장해놓은 상태입니다.
커스텀 리스트뷰를 사용해서
이름 - 번호 - (전송버튼) 이런형식으로 만들어놨고
옆에 전송버튼을 누르면 개인적으로 문자는 전송이 됩니다.
전체전송이란 버튼을 누르면 db에 저장된 사람들에게 전체문자를 보내려고하는데
문자 보내는 방법은 구글링으로 찾은 소스를 사용했습니다.(위의 소스)
위의 방식말고 전체 문자보내는 방법이 있을까요...?