2012-12-13 2 views
0

안드로이드에있는 기존 ContactsContract 데이터베이스에 사용자 정의 열을 추가 할 수 있는지 알고 싶습니까?거기에 안드로이드에 ContactsContract 데이터베이스에 사용자 지정 열을 추가 할 수있는 방법이 있습니까

+0

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/KIr9OickOK4이 스레드는 루트 액세스가 필요합니다. 가능한 경우 그것을 수행하는 방법에 대한 몇 가지 포인터가 싶습니다? 단순히 SqliteOpenHElper를 확장하고 ContactsContract에 대한 변경 쿼리를 보냅니다. 다른 옵션을 사용할 수없는 경우 – user1667307

답변

0

아니요, 죄송합니다. 해당 데이터베이스는 귀하 이외의 다른 응용 프로그램에서 관리합니다. 데이터베이스를 변경할 수있는 유일한 방법은 안드로이드 OS의 복사본을 빌드하는 것입니다. 수정 된 버전은 ContentProvider입니다. 사실

+0

좋습니다. – user1667307

0

:

  1. ContactsContract 상수를 포함하는 클래스입니다. 이러한 상수는 연락처 공급자의 다양한 테이블과 열을 설명합니다.
  2. 설명서에 설명 된주의 사항에 따라 ContactsContract.Data에 정의 된 테이블에 사용자 정의 행을 추가 할 수 있습니다.
+0

알려 주셔서 감사합니다. 내 데이터베이스를 사용하고 숫자를 기본 키로 사용하거나 계약서 연락처 데이터베이스에 새로운 상수를 생성하는 것이 더 좋다고 생각하십니까 – user1667307

+0

자신의 데이터베이스를 만들고 거기에 새 열을 추가하십시오. 이 열을 알고있는 응용 프로그램 일 뿐이므로이 열을 사용하도록 전화 응용 프로그램을 다시 작성하지 않는 한 원본 데이터베이스에 추가 할 필요가 없습니다. 또한 행이 어떤 연락처와 관련이 있는지 확인하려면 전화 번호가 아닌 연락처 ID를 사용하십시오. 전화 번호는 다양한 방식으로 작성 될 수 있으므로 고유 한 식별자로 사용할 수 없습니다. – vikki

+0

"ContactsContract.Data에 정의 된 테이블에 사용자 정의 행을 추가 할 수 있습니다."OP에서 사용자 정의 열에 대해 문의했습니다. 'ContactsContract.Data'는 행의'MIMETYPE'에 기반하여 오버로드 될 수있는 일반적인 컬럼 ('DATA1'에서'DATA15')의 패밀리를가집니다. OP의 요구 사항을 충족시킬 수도 있지만, OP가 이미 그 사실을 알고 있었고 그 가정이 잘못되었을 수도 있다고 생각했습니다. 그러나 코드를 다시 컴파일하지 않으면 제 3 자 데이터베이스에 실제 열을 추가 할 수 없습니다. – CommonsWare

관련 문제