ผู้ให้บริการเนื้อหาสามารถช่วยให้แอปพลิเคชันจัดการสิทธิ์เข้าถึงข้อมูลที่จัดเก็บไว้เองหรือจัดเก็บโดยแอปอื่นๆ รวมถึงระบุวิธีแชร์ข้อมูลกับแอปอื่นๆ โดยจะรวมข้อมูลไว้ด้วยกันและระบุกลไกในการกำหนดความปลอดภัยของข้อมูล ผู้ให้บริการเนื้อหาคืออินเทอร์เฟซมาตรฐานที่เชื่อมต่อข้อมูลในกระบวนการหนึ่งกับโค้ดที่ทำงานในอีกกระบวนการหนึ่ง
การใช้ผู้ให้บริการเนื้อหามีข้อดีหลายประการ ที่สำคัญที่สุดคือคุณสามารถกำหนดค่าผู้ให้บริการเนื้อหาเพื่อให้แอปพลิเคชันอื่นๆ เข้าถึงและแก้ไขข้อมูลแอปของคุณได้อย่างปลอดภัย ดังที่แสดงในรูปที่ 1
![แผนภาพภาพรวมของวิธีที่ผู้ให้บริการเนื้อหาจัดการสิทธิ์เข้าถึงพื้นที่เก็บข้อมูล](https://developer.android.google.cn/static/guide/topics/providers/images/content-provider-overview.png?authuser=4&hl=th)
รูปที่ 1 แผนภาพภาพรวมของวิธีที่ผู้ให้บริการเนื้อหาจัดการการเข้าถึงพื้นที่เก็บข้อมูล
ใช้ผู้ให้บริการเนื้อหาหากวางแผนที่จะแชร์ข้อมูล หากไม่ได้วางแผนที่จะแชร์ข้อมูล คุณก็ไม่จําเป็นต้องใช้ แต่อาจเลือกใช้ได้เนื่องจากมีการจัดเตรียมการแยกความคิดให้คุณแก้ไขการใช้งานพื้นที่เก็บข้อมูลแอปพลิเคชันโดยไม่ส่งผลต่อแอปพลิเคชันอื่นๆ ที่ต้องเข้าถึงข้อมูลของคุณ
ในกรณีนี้ เฉพาะผู้ให้บริการเนื้อหาเท่านั้นที่ได้รับผลกระทบ และแอปพลิเคชันที่เข้าถึงเนื้อหาจะไม่ได้รับผลกระทบ เช่น คุณอาจเปลี่ยนฐานข้อมูล SQLite ไปใช้พื้นที่เก็บข้อมูลอื่น ดังที่แสดงในรูปที่ 2
![ภาพการย้ายข้อมูลพื้นที่เก็บข้อมูลของผู้ให้บริการเนื้อหา](https://developer.android.google.cn/static/guide/topics/providers/images/content-provider-migration.png?authuser=4&hl=th)
รูปที่ 2 ภาพการย้ายข้อมูลพื้นที่เก็บข้อมูลของผู้ให้บริการเนื้อหา
คลาสอื่นๆ อีกหลายคลาสใช้คลาส ContentProvider
ดังนี้
หากใช้คลาสใดคลาสหนึ่งเหล่านี้ คุณต้องใช้ผู้ให้บริการเนื้อหาในแอปพลิเคชัน เมื่อใช้เฟรมเวิร์กอะแดปเตอร์การซิงค์ คุณยังสร้างผู้ให้บริการเนื้อหาสแต็บเป็นทางเลือกได้อีกด้วย ดูข้อมูลเพิ่มเติมได้ที่สร้างผู้ให้บริการเนื้อหาสแต็บ นอกจากนี้ คุณจะต้องมีผู้ให้บริการเนื้อหาของคุณเองในกรณีต่อไปนี้
- วิธีใช้การแนะนำการค้นหาที่กำหนดเองในแอปพลิเคชัน
- เพื่อแสดงข้อมูลแอปพลิเคชันต่อวิดเจ็ต
- วิธีคัดลอกและวางข้อมูลหรือไฟล์ที่ซับซ้อนจากแอปพลิเคชันไปยังแอปพลิเคชันอื่นๆ
เฟรมเวิร์ก Android ประกอบด้วยผู้ให้บริการเนื้อหาที่จัดการข้อมูล เช่น เสียง วิดีโอ รูปภาพ และข้อมูลติดต่อส่วนตัว คุณจะเห็นรายการบางส่วนในเอกสารประกอบอ้างอิงสำหรับแพ็กเกจ android.provider
ผู้ให้บริการเหล่านี้เข้าถึงแอปพลิเคชัน Android ได้โดยมีข้อจำกัดบางอย่าง
คุณสามารถใช้ผู้ให้บริการเนื้อหาเพื่อจัดการการเข้าถึงแหล่งเก็บข้อมูลต่างๆ ซึ่งรวมถึงทั้ง Structured Data เช่น ฐานข้อมูลเชิงสัมพันธ์ SQLite หรือข้อมูลที่ไม่มีโครงสร้าง เช่น ไฟล์รูปภาพ ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทพื้นที่เก็บข้อมูลที่มีใน Android ได้ที่หัวข้อภาพรวมพื้นที่เก็บข้อมูลและไฟล์ และพื้นที่เก็บข้อมูลการออกแบบ
ข้อดีของผู้ให้บริการเนื้อหา
ผู้ให้บริการเนื้อหามีการควบคุมสิทธิ์การเข้าถึงข้อมูลแบบละเอียด คุณสามารถเลือกจำกัดการเข้าถึงเฉพาะผู้ให้บริการเนื้อหาที่อยู่ในแอปพลิเคชันของคุณ ให้สิทธิ์แบบครอบคลุมในการเข้าถึงข้อมูลจากแอปพลิเคชันอื่นๆ หรือกำหนดค่าสิทธิ์ต่างๆ สำหรับการอ่านและเขียนข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ผู้ให้บริการเนื้อหาอย่างปลอดภัยได้ที่ คำแนะนำด้านความปลอดภัยสำหรับพื้นที่เก็บข้อมูลและ สิทธิ์ของผู้ให้บริการเนื้อหา
คุณสามารถใช้ผู้ให้บริการเนื้อหาเพื่อซ่อนรายละเอียดการเข้าถึงแหล่งข้อมูลต่างๆ ในแอปพลิเคชัน เช่น แอปพลิเคชันอาจจัดเก็บระเบียนที่มีโครงสร้างในฐานข้อมูล SQLite รวมถึงไฟล์วิดีโอและไฟล์เสียง คุณสามารถใช้ผู้ให้บริการเนื้อหาเพื่อเข้าถึงข้อมูลทั้งหมดนี้ได้
นอกจากนี้ ออบเจ็กต์ CursorLoader
ยังอาศัยผู้ให้บริการเนื้อหาในการเรียกใช้การค้นหาแบบไม่สอดคล้องกัน แล้วแสดงผลลัพธ์ไปยังเลเยอร์ UI ในแอปพลิเคชัน ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ CursorLoader
เพื่อโหลดข้อมูลในเบื้องหลังได้ที่
โหลด
หัวข้อต่อไปนี้อธิบายผู้ให้บริการเนื้อหาโดยละเอียด
- ข้อมูลเบื้องต้นเกี่ยวกับผู้ให้บริการเนื้อหา
- วิธีเข้าถึงและอัปเดตข้อมูลโดยใช้ผู้ให้บริการเนื้อหาที่มีอยู่
- สร้างผู้ให้บริการเนื้อหา
- วิธีออกแบบและติดตั้งใช้งานผู้ให้บริการเนื้อหาของคุณเอง
- ภาพรวมของผู้ให้บริการปฏิทิน
- วิธีเข้าถึงผู้ให้บริการปฏิทินที่เป็นส่วนหนึ่งของแพลตฟอร์ม Android
- ผู้ให้บริการรายชื่อติดต่อ
- วิธีเข้าถึงผู้ให้บริการรายชื่อติดต่อซึ่งเป็นส่วนหนึ่งของแพลตฟอร์ม Android