2010-05-20 2 views
5

"content // sms /"를 쿼리했고 일부 필드의 의미를 모르겠습니다. 그들은이다 -Android "content // sms /"콘텐츠 제공 업체의 값의 의미는 무엇입니까?

  1. 내가 값을 로그 캣에서 그들을 확인하고 발견
  2. 프로토콜
  3. 상태
  4. Reply_Path_Present
  5. Service_Center

스레드 ID이 될 :

  • 스레드 ID : 1
  • 프로토콜 .. 6 등까지 : 널 (null)는/0
  • 은 상태 : -1
  • Reply_Path_Present : 널 (null)/0
  • Service_Center : 널 (null)

은 제발 말해 무엇 그 값의 의미는 다음과 같습니다.

답변

6

Cursor.getColumnNames()을 사용하여 콘텐츠 공급자의 열 이름을 검색 할 수 있습니다.

ContentResolver contentResolver = getContentResolver(); 
Cursor cursor = contentResolver.query(
    Uri.parse("content://sms/inbox"), null, null, null, null); 

String[] columnNames = cursor.getColumnNames(); 

content://sms/inbox를 들어이 내 전화에 잠겨 _id, thread_id, 주소, 사람, 날짜, 프로토콜, 읽기, 상태, 유형, reply_path_present, 제목, 본문, service_center를 얻을 수 있습니다.

SmsProvider을 볼 수도 있지만 공개 API의 일부는 아닙니다.

+0

고맙습니다. Josef. 내 약점을 영어로 유감스럽게 생각합니다. 예를 들어, 상태 -1의 가치에서 의미하는 바를 의미합니다. // 15 개의 필드가 있습니까? 그것은 안드로이드 버전에 따라 좌우됩니까? 어디서 어떻게 내가 UR 공유 링크, SmsProvider 같은 오픈 소스 코드를 배울 수 있을까? 사실, 나는 안드로이드에서 2 개월 동안 일했습니다. 그래서 더 많이 알려주세요. – soclose

+0

SMS 콘텐츠 공급자 자체는 "공개 API의 일부가 아닙니다." 그렇다면'android.provider' 패키지에 클래스를 볼 수 있습니다. http://android-developers.blogspot.com/2010/05/be-careful-with-content-providers.html – CommonsWare

+0

감사합니다. 위의 5 개 필드가 무엇에 사용되는지 알려주세요. – soclose

1

폴링은 특정 커서가 가진 모든 열을 결정하는 방법입니다.

StringBuffer info = new StringBuffer(); 
for(int i = 0; i < Cursor.getColumnCount(); i++) { 
    info.append("Column: " + Cursor.getColumnName(i) + "\n"); 
} 

이 내용을 인쇄하여 테이블의 모든 열을 확인하십시오.

관련 문제