2010-11-02 28 views
5

Tôi đang viết một ứng dụng mạng xã hội có chức năng đồng bộ hóa danh bạ. Tôi có mã số làm việc (từ một ví dụ tôi tìm thấy here) chèn địa chỉ liên lạc trên v2.x trong bộ điều hợp đồng bộ hóa.Android 1.x Contacts.Extensions cho loại tài khoản tùy chỉnh?

Tuy nhiên, phần mềm Motorola Blur không nhận dạng được các liên hệ 2.x (Tôi đang sử dụng bản 2.2 Moto được xây dựng trên Droid X). Blur sử dụng API 1.x của liên hệ, nhưng tôi gặp khó khăn trong việc tìm kiếm/hiểu các ví dụ về cách sử dụng nó. This page cho biết cách truy vấn theo tên, nhưng tôi muốn a) thêm và b) truy vấn theo loại tài khoản tùy chỉnh (hoặc có khả năng MIME).

Mã v2 tôi đang sử dụng tạo một liên hệ thô mới, tạo bản ghi dữ liệu "StructuredName" và sau đó là bản ghi dữ liệu của loại MIME tùy chỉnh.

Làm cách nào để thực hiện tương đương trên API 1.x (cấp 3)? Tôi nghĩ rằng đây là lớp Contact.Extensions dành cho, nhưng tài liệu không rõ ràng nhất.

Trả lời

1

Sửa đổi Motorola BLUR đối với danh bạ có liên quan nhiều hơn đến cách quản lý tài khoản trên thiết bị và ít hơn với các thay đổi đối với nhà cung cấp nội dung. Vấn đề thực sự khi làm việc với thiết bị Motorola BLUR là bạn cần đặt ACCOUNT_NAMEACCOUNT_TYPE thành giá trị phù hợp với thiết bị.

Motorola không phải là thiết bị duy nhất mà đây là vấn đề như trong công việc của tôi, tôi đã tìm thấy các thiết bị khác có ứng dụng danh bạ không hoạt động tốt với các bản ghi được thêm vào tài khoản tùy chỉnh trên thiết bị.

Trong khi thiết lập, bạn sẽ phải xác định loại thiết bị bạn đang chạy và sau đó xác định xem bạn sẽ sử dụng tài khoản nào để lưu trữ danh bạ của mình. Tôi đã tìm thấy ngoại lệ cho Samsung Galaxy, thiết bị HTC Sense và thiết bị MOTOBLUR mà sử dụng tài khoản liên hệ tùy chỉnh không cho phép bạn làm việc với các liên hệ của mình trong ứng dụng liên hệ (ví dụ: bạn có thể thêm chúng, nhưng không chỉnh sửa hoặc không thể chèn bản ghi mới vào tài khoản của bạn).

Tôi không thể chia sẻ mã vì nó thuộc về công việc của tôi, nhưng tôi có thể cho bạn biết rằng nếu bạn sử dụng tài khoản sau cho danh bạ trên thiết bị MOTOBLUR, nó sẽ hoạt động. Các thiết bị Motorola trên Verizon có một tài khoản trợ lý sao lưu hoạt động tốt và khác khôn ngoan tôi sử dụng tài khoản BLUR mặc định có vẻ hoạt động tốt.

Tìm tài khoản trên thiết bị có loại com.motorola.android.buacontactadapter và tên là "Điện thoại" và sử dụng tên đó. Nếu không có, hãy tìm tài khoản thuộc loại com.motorola.blur.service.bsutils.MOTHER_USER_CREDS_TYPE và sử dụng tài khoản đó (với bất kỳ tên nào của nó) và bạn sẽ được thiết lập trên các thiết bị Motorola.

Nếu bạn chia sẻ một số mã của bạn hoặc liên kết đến ví dụ bạn đã tham chiếu, tôi rất sẵn lòng đi sâu hơn.

+0

Ví dụ mà tôi đã sử dụng là cái này: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/ Tôi đã tìm thấy (vui vẻ) ra rằng trên BLUR> 2.2 (bánh gừng +) ứng dụng liên lạc mờ sẽ vui vẻ tìm và làm việc với các liên hệ API v2.x của tôi. Các phiên bản trước vẫn không hài lòng. –

+0

Motorola đã học được lỗi theo cách của họ, các phiên bản gần đây của BLUR (bài 4) sẽ hoạt động cho bạn.Thật không may, họ không cập nhật các thiết bị cũ hơn nên chỉ có thời gian mới chữa được bệnh của bạn. –

+0

Có vẻ như thời gian đã chữa khỏi bệnh này. Hầu như không có cơ sở người dùng nào của tôi ở trên <2.2 nữa. Tôi sẽ chấp nhận câu trả lời này mặc dù tôi không thử phương pháp này. Cảm ơn những nỗ lực bạn đưa vào nó. –

1

Để giải quyết kết thúc câu hỏi của bạn:

Cơ sở hạ tầng này chỉ được hỗ trợ cho cấu trúc liên hệ 2.x, đó là khi họ giới thiệu.

Ứng dụng Danh bạ OEM trên thiết bị 1.X có thể hoặc có thể không hoạt động tương tự.

Các vấn đề liên quan