제 메인 액티비티는 따로 있고... 그 메인 기능을 수행도중에 문자가 오면 자동답장을 하게 하려고 그러는데요
receiver로 SmsReceiver.java 클래스를 등록해놓고 여기에다가 sms를 수신받을 수 있게 코드를 써놨거든요?
그리고 그 안에서 sendSMS함수를 호출해서, sms받자마자 그 번호로 메시지를 보내려고 하는데요
sendSMS 안에 pendingIntent가 포함돼있어서 이 부분을 어떻게 처리해야될 지 모르겠어요 ㅠㅠ
현재 클래스가 액티비티가 아니고 리시버라서 안되는건지 ㅜㅜ
sms전송 클래스를 따로 두게 되면, sms 받자마자 보내는걸 못할 거 같아서 이렇게 했는데
도와주세요 ㅠㅠ
public class SmsReceivers extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String address="";
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
address= msgs[i].getOriginatingAddress();
if(SettingLock.chk_yes==true){
__sendSMS(address, SettingLock.message);
};
}
}
}
private void __sendSMS(String phoneNumber, String message)
{
// PendingIntent pi = PendingIntent.getActivity(this, 0,
// new Intent(this, SmsReceivers.class), 0);
SmsManager sms = SmsManager.getDefault();
// sms.sendTextMessage(phoneNumber, null, message, pi, null);
sms.sendTextMessage(phoneNumber, null, message, null, null);
}
}
if(bundle != null){
Object[] pdus = (Object[])bundle.get("pdus");
for(Object pdu:pdus){
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])pdu);
message +=smsMessage.getMessageBody();
Log.d(Tag, message);
if(sender.equals(""))
sender = smsMessage.getOriginatingAddress();
}
}
이거 써보세요.