안녕하세요. sms문자가 오면
받은 문자가 @@로 시작하면 똑같은 sms를 다시 돌려보내는 프로그램을 만들려고 합니다.
그런데 작동을 안하네요. 고수님들의 도움을 바래요 ^^ 플리즈~
AndroidManifest.xml에 이것두 추가했어요.
<users-permission android:name="android.permission.RECEIVED_SMS"/>
코드
package com.android.SMS;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
public class ReturnSMS extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
IntentFilter filter = new IntentFilter(SMS_RECEIVED);
BroadcastReceiver receiver = new IncomingSMSReceiver();
registerReceiver(receiver, filter);
}
public class IncomingSMSReceiver extends BroadcastReceiver{
private static final String queryString = "@@";
private static final String SMS_RECEIVED =
"android.provider.Telephony.SMS_RECEIVED";
public void onReceive(Context _context, Intent _intent){
if(_intent.getAction().equals(SMS_RECEIVED)){
SmsManager sms =SmsManager.getDefault();
Bundle bundle = _intent.getExtras();
if ( bundle != null ) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for( int i=0; i<pdus.length; i++)
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
for( SmsMessage message:messages){
String msg = message.getMessageBody();
String to = message.getOriginatingAddress();
if( msg.toLowerCase().startsWith(queryString)){
String out = msg.substring(queryString.length());
sms.sendTextMessage(to, null, out, null, null);
}
}
}
}
}
}
}
sms 인증 서비스 말씀하시는건가요?