총 게시물 35,420건, 최근 8 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

sms수신관련 질문입니다.

글쓴이 : 봄날의곰 날짜 : 2012-04-02 (월) 19:54 조회 : 2820
글주소 : http://www.androidside.com/B49/71002
안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

sms수신하는 부분이 전혀 작동을하지 않고있습니다..
아직 실력이 모자라...여러 자료들을 참조하며 만들고있는데.... 문자를 받은걸 전혀 인식을 못해요...

public class SmsReceiver extends BroadcastReceiver {
private static final String LOG_TAG = "SmsR";
private static final String ACTION ="android.provider.Telephony.SMS_RECEIVED";        
 
@Override
public void onReceive(Context context, Intent intent) {
Log.i(LOG_TAG, "onReceive");
try{
// TODO Auto-generated method stub
if(intent.getAction().equals(ACTION)){
Log.i(LOG_TAG, "getAction == action");
StringBuilder ab = new StringBuilder();
Bundle bundle = intent.getExtras();
if(bundle != null){
   Object[] pdusObj = (Object[]) bundle.get("pdus"); 
   SmsMessage[] messages = new SmsMessage[pdusObj.length]; 
   for (int i = 0; i<pdusObj.length; i++) { 
    messages[i] = SmsMessage.createFromPdu ((byte[])pdusObj[i]); 
       ab.append("Received compressed SMS\n FROM ");
       ab.append(messages[i].getDisplayOriginatingAddress());                  
       ab.append("--Message--- ");
       ab.append(messages[i].getDisplayMessageBody());
   } 
}
Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + ab);
Toast.makeText(context, ab.toString(), Toast.LENGTH_LONG).show();
  
Intent i = new Intent(context, SmsSender.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}else{
}
}catch(Exception e){
Log.e(LOG_TAG, " error : " + e.toString());
}
}

}

manifest파일
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".SmsSender" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- SMS 수신 -->
        <receivre android:name="SmsReceiver" android:permission="android.permission.BROADCAST_SMS">
            <intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receivre>
    </application>

sms수신자체가 안됩니다..... 아시는 분 꼭 좀 답 좀 달아주세요..^^*...



질문자가 자신의 포인트 100 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 80을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

nicehee 2012-04-02 (월) 21:08
일단 <receivre android:name="SmsReceiver" 에서
<receivre android:name=".SmsReceiver"
.을 하나 선사해 주시고...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
퍼미션도 주셔야...
댓글주소 추천 0 반대 0
봄날의곰 2012-04-02 (월) 21:21
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />는 있고, 
SmsReceiver를 ".SmsReceiver"로 해줘봤지만 안되네요.... ㅠㅠ....
댓글주소 추천 0 반대 0
     
     
안사지킴이 2012-04-02 (월) 21:21
축하드립니다. ;)
봄날의곰님은 럭키라이팅에 당첨되어 2 포인트 지급되었습니다.
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기
챗방 숨기기 |  챗방 보이기