lierre

content provider 예제

Android에서 콘텐츠 공급자는 앱 데이터를 저장하는 다양한 방법을 가지고...

02 Août

Android에서 콘텐츠 공급자는 앱 데이터를 저장하는 다양한 방법을 가지고 있습니다. 응용 프로그램 데이터는 SQLite 데이터베이스 또는 파일또는 우리의 요구 사항에 따라 네트워크를 통해 저장할 수 있습니다. 콘텐츠 제공업체를 이용함으로써 오디오, 비디오, 이미지 및 개인 연락처 정보와 같은 데이터를 관리할 수 있습니다. 이 시점에서 delete() 메서드를 구현하는 다른 방법을 언급하는 것이 좋습니다. 데이터 저장소에서 행을 삭제하는 대신 « 삭제 » 플래그가 있는 동기화 어댑터를 사용할 수 있습니다. 동기화 어댑터는 먼저 서버에서 삭제된 행을 제거한 다음 공급자에서 제거할 수 있습니다. 콘텐츠 확인자 및 콘텐츠 공급자를 사용하도록 데이터베이스 처리기 클래스가 업데이트되면 이제 응용 프로그램을 테스트할 준비가 되었습니다. 응용 프로그램을 컴파일 및 실행하고 제품 항목을 추가, 찾기 및 제거하는 몇 가지 작업을 수행합니다. 작업 및 기능 면에서 응용 프로그램은 현재 콘텐츠 공급자를 사용하고 있다는 점을 제외하면 데이터베이스에 직접 액세스할 때와 똑같이 동작해야 합니다. 이제 콘텐츠 공급자가 구현되고 매니페스트 파일에 선언되면 다른 모든 응용 프로그램이 해당 데이터에 잠재적으로 액세스할 수 있습니다(기본 전체 액세스가 적용되는 권한이 선언되지 않았기 때문에).

다른 응용 프로그램에서 액세스권한을 얻기 위해 알아야 할 유일한 정보는 제품 테이블의 콘텐츠 URI 및 열 이름뿐입니다. 권위 – 전화, 연락처 등과 같은 콘텐츠 제공 업체의 이름을 나타내며 com.tutlane.contactprovider와 같은 제 3 자 콘텐츠 제공 업체에 대해 자격을 갖춘 이름을 사용해야합니다. 액세스할. 특성이 true로 설정된 경우 시스템은 공급자 수준 또는 경로 수준 권한에 필요한 다른 권한을 재정의하여 전체 공급자에 임시 권한을 부여합니다. 다른 여러 콘텐츠 공급자 메서드와 공통적으로 delete() 메서드는 URI, 선택 문자열 및 선택적 선택 인수 집합을 전달합니다. 일반적인 delete() 메서드는 다음과 같은 작업을 수행하며, 이제 는 호출될 때 작업을 크게 수행합니다. 타사 콘텐츠 공급자의 경우 com.tutorialspoint.statusprovider 와 같은 정식 형식의 이름이 사용자 사전 공급자가 매니페스트 파일에서 권한 android.permission.READ_USER_DICTIONARY를 정의할 수 있으므로 응용 프로그램 공급자가 이 권한을 요청해야 합니다. 모든 콘텐츠 공급자는 지원되는 URI에 대해 콘텐츠 형식을 반환해야 합니다.

메서드의 서명은 URI를 사용 하 고 문자열을 반환 합니다. 다음 코드 샘플에서는 샘플 응용 프로그램의 getType() 메서드를 보여 주며 있습니다. 덜 열려 있는 것은 마틴 반 Z가 자신의 앱 노트 목록에 대한 콘텐츠 제공업체에 대한 것입니다. 그러나 그는 그럼에도 불구하고 관심있는 앱 개발자가 Note 목록의 데이터를 사용하려는 경우 도움이되는 도움을 제공합니다 – 그는 비록 세계에 자신의 계약을 공개하지 않습니다. 사용자 사전 공급자에서 단어 및 해당 로캘 목록을 얻으려면 ContentResolver.query()를 호출합니다. query() 메서드는 사용자 사전 공급자가 정의한 ContentProvider.query() 메서드를 호출합니다. 코드의 다음 줄은 ContentResolver.query() 호출을 보여줍니다 : 콘텐츠 공급자를 쿼리하려면 다음 형식이있는 URI 형태로 쿼리 문자열을 지정합니다 – 공급자는 안드로이드를 사용하여 매니페스트의 콘텐츠 URI에 대한 URI 권한을 정의합니다. grantUriPermission 요소의 특성뿐만 아니라 요소의 자식 요소입니다.