아래 구글링해서 얻은 소스를 돌려봤더니 잘 되네요^^
그런데 80byte가 넘는 문자나 MMS 는 못받더군요..
그리고 이렇게 문자를 받을때,, 폰에 있는 기본문자 시스템을 오버라이드해서 제가 임의대로 문자를 저장하고 삭제하려면
어쩧게 해야 하는지도 궁금합니다.
public class MySMSMonitor extends BroadcastReceiver {
private static String ACTIONNAME = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null && intent.getAction() != null
&& ACTIONNAME.compareToIgnoreCase(intent.getAction()) == 0) {
if(intent.getAction().equals(ACTIONNAME)) {
Object[] pdu = (Object[]) intent.getExtras().get("pdus");
SmsMessage[] msg = new SmsMessage[pdu.length];
for (int i = 0; i < msg.length; i++) {
msg[i] = SmsMessage.createFromPdu((byte[]) pdu[i]);
String addr = msg[i].getOriginatingAddress();
String body = msg[i].getMessageBody();
long dateTime = msg[i].getTimestampMillis();
String date = Long.toString(dateTime);
android.util.Log.i("SMS monitor", i + " = " + msg[i].getOriginatingAddress() + "/" + msg[i].getMessageBody()+"/"+date);
}
}
}
}
}
퍼미션도 다 주었다고 생각됩니다.
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
혹시 어떻게 하는지 아시는 분 조언 부탁드리겠습니다. 며칠째 해결을 못하고 지금 곤경에 처해 있어요 ㅠㅠ
도움주시면 대박 나실겁니다 ^^ 좋은하루 되세요~~~~!!