1. Trang chủ
  2. » Công Nghệ Thông Tin

LẬP TRÌNH ANDROID NÂNG CAO Bài 7: Truy cập dữ liệu Contact

30 160 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 593,14 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung bài học Tổng quan về Contacts Provider  Truy cập danh sách Contact  Hiển thị thông tin chi tiết của Contact  Thay đổi Contact sử dụng Intent  Hiển thị Quick Contact Badge 2

Trang 1

LẬP TRÌNH ANDROID NÂNG CAO

Bài 7: Truy cập dữ liệu

Contact

Trang 2

Nội dung bài học

 Tổng quan về Contacts Provider

 Truy cập danh sách Contact

 Hiển thị thông tin chi tiết của Contact

 Thay đổi Contact sử dụng Intent

 Hiển thị Quick Contact Badge

2

Trang 4

Contact Provider

 Ba bảng này được tham chiếu tới tên của các lớp contract

 Các lớp định nghĩa các hằng số như content URI, tên cột, giátrị của cột được sử dụng bởi ba bảng sau:

Bảng ContactsContract.Contacts: thể hiện các contact

khác nhau, dựa trên các cột contact nguyên thủy (raw contact)

Bảng ContactsContract.RawContacts: cung cấp thông

tin dữ liệu về person, như user account và type

Bảng ContactsContract.Data: cung cấp thông tin

contact nguyên thủy

Trang 5

Contact Provider

 Contacts Provider cung cấp thông tin liên hệ (contact) củangười dùng bao gồm dữ liệu từ các ứng dụng contacts vàcác ứng dụng mạng xã hội

 Trong ứng dụng, bạn có thể truy cập thông tin contact sử

dụng phương thức ContentResolver hoặc gửi intent tới ứng dụng Contacts

 Cung cấp các phương thức để hiển thị danh sách contact, xem thông tin chi tiết của contact, thay đổi thông tin

contact sử dụng intent

Trang 6

Contact nguyên thủy

 Contact nguyên thủy bao gồm dữ liệu người dùng đến từmột kiểu account cụ thể và tên account

 Contact Provider cho phép nhiều hơn một dịch vụ online cung cấp dữ liệu về contact, do đó Contacts Provider chophép nhiều dữ liệu contact nguyên thủy cho cùng một

người dùng

 Nhiều dữ liệu contact nguyên thủy cho phép một người

dùng liên kết nhiều dữ liệu người dùng từ nhiều account khác nhau

 Hầu hết dữ liệu của contact nguyên thủy không được lưutrữ trong bảng ContactsContract.RawContacts mà được lưutrữ trong một hoặc nhiều dòng của bảng

ContactsContract.Data

Trang 7

Các cột dữ liệu nguyên thủy quan trọng

ACCOUNT_NAME: tên tài khoản của contact nguyên thủy,

ví dụ tên của một tài khoản google account là một trong

các địa chỉ Gmail của người dùng thiết bị Android, ví dụ kiểutài khoản của Google account là com.google

ACCOUNT_TYPE:kiểu tài khoản của contact nguyên thủy

DELETED: cờ khóa cho contact nguyên thủy

Trang 8

Các nguồn dữ liệu nguyên thủy

 Giả sử người dùng “Emily Dickinson” có 3 tài khoản sau trên thiết bị của anh ấy

 emily.dickinson@gmail.com

 emilyd@gmail.com

 Twitter account “belle_of_amherst”

 Người dùng này kích hoạt chức năng Sync Contacts cho cả 3 tài khoản

 Khi Emily Dickinson mở tài khoản trên trình duyệt, đăng nhập vào Gmail với tài khoản emily.dickinson@gmail.com và thêm “Thomas Higginson” Sau đó, đăng nhập vào emilyd@gmail.com và gửi cho “Thomas

Higginson” một email,“Thomas Higginson” sẽ tự động được thêm vào contact

 Anh ấy cũng follow “Thomas Higginson” trên twitter

Trang 9

Các nguồn dữ liệu nguyên thủy

 Khi đó, Contacts Provider sẽ tạo ba contact nguyên thủy

như sau:

 Một contact nguyên thủy đối với “Thomas Higginson” ứng với email emily.dickinson@gmail.com

 Một contact nguyên thủy thứ hai đối với “Thomas

Higginson” ứng với email emilyd@gmail.com Kiểu tàikhoản vẫn là Google Khi đó, sẽ có dòng contact nguyênthủy thứ hai mặc dù trùng tên với contact trước đó

 Một contact nguyên thủy thứ ba đối với “Thomas

Higginson” ứng với twitter “belle_of_amherst” Kiểu tàikhoản người dùng là Twitter

Trang 10

 Ví dụ “Thomas Higginson” đối với account

emily.dickinson@gmail.com (dòng dữ liệu của contact

nguyên thủy của “Thomas Higginson” liên kết với tài khoảnGoogle emily.dickinson@gmail.com) có địa chỉ email côngviệc là thao@gmail.com và email cá nhân là

thao_2000@gmail.com, Contacts Provider sẽ lưu trữ hai địachỉ email và liên kết cả hai tới contact nguyên thủy

Trang 11

Tên cột miêu tả

 Nhiều loại dữ liệu được lưu trữ trong một bảng Display

name, phone number, email, photo, website đều được lưutrữ trong bảng ContactsContract.Data

 Để quản lý các dữ liệu này, ContactsContract.Data có vài cộtvới tên miêu tả và một số cột khác với tên chung chung

 Nội dung của cột có tên miêu tả có chung ý nghĩa đối vớimọi kiểu dữ liệu trong cột, trong khi đó nội dung của cáccột với tên chung chung khác nhau đối với các kiểu dữ liệukhác nhau

Trang 12

 IS_PRIMARY: cột IS_PRIMARY đánh dấu dòng dữ liệu

chứa dữ liệu chính của kiểu Ví dụ khi người dùng

long-press trên số điện thoại của một contact và chọn Set

Default, khi đó dòng ContactsContract.Data sẽ có giá trị

khác 0 ở cột IS_PRIMARY

Trang 13

Các cột chung

 Có 15 cột chung tên từ DATA1 đến DATA15 và các cột

SYNC1 đến SYNC4 (được sử dụng bởi sync adapter)

 Cột Data1 được đánh chỉ số (index) Contact Provider

thường sử dụng cột này để lưu dữ liệu mà provider sử dụngnhiều nhất, ví dụ chứa email thực của contact

 Cột Data15 thường dùng để lưu dữ liệu BLOB như ảnh

thumnails

Trang 14

là Email.CONTENT_ITEM_TYPE Lớp này chứa hằng số

ADDRESS cho cột địa chỉ Email Giá trị thực tế của

ADDRESS1 là “data1”

Trang 16

Contact

Trang 17

Yêu cầu Permission đối với Provider

 READ_CONTACTS, thêm vào AndroidManifest.xml với phần

Trang 18

Hiển thị thông tin chi tiết của Contact

Trang 20

DEM O

Hiển thị danh sách Contact

Trang 21

Thay đổi thông tin Contacts

 Bạn có thể thêm mới, sửa đổi, xóa dữ liệu trong Contacts Provider ở chế độ batch mode bằng cách tạo một ArrayListcủa các đối tượng ContentProviderOperation và gọi

applyBatch()

 Để thay đổi thông tin một contact cụ thể, bạn nên gửi mộtintent tới ứng dụng contact của thiết bị

Trang 22

Xóa Contact

Trang 24

DEMXóa ContactO

Trang 25

Hiển thị Quick Contact Badge

 Quick Contact Badge là một widget xuất hiện như một ảnhthumbnail

 Bạn có thể sử dụng Bitmap cho ảnh thumbnail

 Ảnh nhỏ hoạt động như một control, khi người dùng click vào ảnh, QuickContactBadge mở rộng một dialog chứa cácthông tin sau:

 Một ảnh lớn: ảnh lớn liên quan đến contact

 App icons:

Trang 26

Hiển thị Quick Contact Badge

Trang 28

 Để thêm QuickContactBadge, bổ sung

<QuickContactBadge> vào layout

Trang 29

DEM O

Sử dụng Quick Contact Badge

Trang 30

 Tổng quan về Contacts Provider

 Truy cập danh sách Contact

 Hiển thị thông tin chi tiết của Contact

 Thay đổi Contact sử dụng Intent

 Hiển thị Quick Contact Badge

Tổng kết nội dung bài học

Ngày đăng: 27/02/2019, 17:27

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w