2010-05-05 3 views
5

SMS 클라이언트 앱의 메시지 저장에 사용되는 데이터 구조와 이에 대한 기존 API가 있는지 여부를 아는 사람이 있습니까?안드로이드에서 SMS 메시지에 사용되는 데이터 구조

아마도 링크 목록을 구현하는 것이 목표 였지만 이미 API에서 작업이 완료된 경우 다른 부분을 프로그래밍하는 데 소요되는 작업에 시간을 할애하지 않아도됩니다.

많은 감사 안드로이드에서

답변

1

android.telephony.SmsMessage이 있습니다. 이것은 단일 SMS 메시지를 저장하기 위해 안드로이드에서 사용되는 객체입니다. 당신은 그것을보고 그것을 닮은 무언가를 만들거나 재사용 할 수 있습니다.

데이터 구조를 저장할 수있는 한 java.util.List<E>을 사용하는 것이 좋습니다. 그러면 표준 배열 []과 같은 다른 데이터 구조보다 훨씬 더 융통성이 생깁니다.

SMS 메시지를 장기간 보관하는 경우에는 SQLlite, which is also a part of the Android platform을 사용하여 지속성을 살펴 보시기 바랍니다.

1

내장 된 메시징 앱은 모든 메시지를 데이터베이스에 저장합니다. Android 소스 코드를 확인하여 그 기능을 확인해 볼 수는 있지만이 데이터를 읽지 말 것을 권장합니다. 공식 SDK의 일부가 아니므로 변경되거나 일부 휴대 전화에는 없을 수 있습니다.

직접 저장하는 방법은 연결된 목록을 사용하지 않을 것입니다. 데이터베이스를 사용하면 SharedPreferences를 사용하는 작은 값 이외의 영구 데이터를 저장하는 것이 좋습니다.

1
Uri uriSMS=Uri.parse("Content://sms/inbox"); 
     Cursor cur=getContentResolver().query(uriSMS,null,null,null,null); 
     String[] sender=new String[100];String[] content=new String[100];int ct=0; 
     While(cur.moveToNext()){ 
      sender[ct]=cur.getString(2);//arg2: this is address 
      content[ct]=cur.getString(11);//arg11: this is body of SMS 
//[0: _id,1: thread_id,2: address,3: person,4: date,5: protocol,6: read,7: status,8: type,9: reply_path_present,10: subject,11: body,12: service_center,13: locked,14: error_code,15: seen] 
     } 

이것은 SMS의 콘텐츠 구조입니다. 예를 들어, arg2와 arg11이 SMS의 주소와 내용입니다. 이 샘플을 사용하여 전화 번호

에 저장된 모든 SMS를 읽을 수 있습니다.
관련 문제