http://www.masterqna.com/android/27479/%ED%82%B7%EC%BA%A3%EC%97%90%EC%84%9C-%ED%8A%B9%EC%A0%95%EB%B2%88%ED%98%B8%EB%A1%9C-sms-%EC%88%98%EC%8B%A0%EC%8B%9C-%EC%B2%B4%ED%81%AC%ED%95%98%EA%B2%8C%EB%81%94-%ED%95%98%EA%B3%A0-%EC%8B%B6%EC%9D%80%EB%8D%B0-%EC%95%88%EB%90%98%EB%84%A4%EC%9A%94
안녕하세요^-^
개인적으로 특정번호의 문자가 오면 정해진 번호로 문자가 가도록 서비스를 만들어 사용했습니다.
이번에 폰을 KitKat 버전으로 바꾸면서 서비스가 실행이 안되어 확인해보니 API가 바뀌었더라구요.
그래서 검색해서 마침 위에 링크를 보고 따라했는데 안 되어 이렇게 질문드립니다.
혹시 제가 어느 부분이 잘못 됐는지 좀 알려주실 수 있나요? (_ _) 부탁드리겠습니다. 꾸벅.
package kr.Neosarchizo.DeliverySMS;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class SMSReceiver extends BroadcastReceiver {
static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
Log.d("neosarchizo","onReceive!!");
if (intent.getAction().equals(ACTION)) {
Log.d("neosarchizo","ACTION!!");
Bundle bundle = intent.getExtras();
if (bundle == null) {
return;
}
Log.d("neosarchizo","Bundle!!");
Object[] pdusObj = (Object[]) bundle.get("pdus");
if (pdusObj == null) {
return;
}
Log.d("neosarchizo","pdus!!");
SmsMessage[] smsMessages = new SmsMessage[pdusObj.length];
for (int i = 0; i < pdusObj.length; i++) {
smsMessages[i] = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = smsMessages[i].getOriginatingAddress();
String message = smsMessages[i].getMessageBody();
Log.d("neosarchizo","phoneNumber : "+phoneNumber);
if(phoneNumber.equals("########")){
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("#########", null, message, null, null);
Toast.makeText(context, context.getResources().getString(R.string.deliver_complete), Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(context, context.getResources().getString(R.string.deliver_failed), Toast.LENGTH_LONG).show();
}
}
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kr.Neosarchizo.DeliverySMS"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-sdk android:targetSdkVersion="19" android:minSdkVersion="19"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name=".SMSReceiver" android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
</manifest>