안드로이드에서 MMS 수신하면 BR을 뿌리고 싶은데요
마음데로 잘 안되네요
일단 간단하게 문자가 수신되면 토스트로 간단하게 BR이 재대로 동작하였는지를 알아보았습니다.
-------------------------------------------------------------------------------------------------------------------------------
import android.content.*;
import android.widget.*;
public class SMSBR extends BroadcastReceiver {
public void onReceive(Context context, Intent intent){
Toast.makeText(context, "확인", 1000).show();
}
}
-------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ex.ex"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="SMSBR">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>
-------------------------------------------------------------------------------------------------------------------------------
위와같이 자바소스와 매니패스트를 작성하고 실제 장비(갤럭시S)에 어플을 실행하면
SMS 문자 수신 시 "수신확인" 토스트가 정상적으로 뜨는 것을 확인 할 수 있습니다.
문제는 MMS(장문메세지)를 수신하는 것인데요
안드로이드에는 리시브에 관한 퍼미션이 2가지 인텐트필터에는 1가지가 더있습니다.
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"/>
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED"/>
이것들을 등록하면 될 줄 알았는데,
장문 메세지를 받으면 그냥 문자가 올 뿐 토스트는 뜨지 않으며 BR이 동작이 안하는것 같군요..
MMS(장문메세지)를 수신하려면 어떻게 해야 하죠?
문자가 왔다는 것을 알 수 있는 방법은 없을까요?




ContentResolver의 메소드 중 registerContentObserver(Uri.parse("content://mms-sms"), true, ContentObserver); 를 이용해 보세요.