2012-05-10 36 views
7

Tôi đang triển khai bộ điều hợp đồng bộ hóa để ứng dụng của tôi đồng bộ hóa với phần phụ trợ appengine. Trên appengine tôi đang sử dụng được xây dựng trong api người dùng để xác thực. Có một bài đăng HERE cho biết cách thực hiện, tuy nhiên ứng dụng được liệt kê trong tài khoản gmail. Lý tưởng nhất là ứng dụng của tôi sẽ được liệt kê trong các tài khoản. Tôi không muốn hỏi người dùng về tên người dùng và mật khẩu, chỉ cần sử dụng tài khoản google hiện có để xác thực. Có ai làm điều này trước khi??Bộ điều hợp đồng bộ hóa Android với appengine Tài khoản người dùng Google

Cập nhật: Tôi đã làm việc về điều này và có vẻ như tôi có thể triển khai AuthenticationService và lưu trữ tên tài khoản người dùng và để lại mật khẩu dưới dạng chuỗi trống. Trong các phương thức getAuthToken() tôi có thể trả về đơn giản mã thông báo auth google. Sẽ đăng khi tôi nhận được thêm ...

Trả lời

3

Có thể bạn đã hiểu lầm hệ thống tài khoản Android. Khi bạn chuyển đến Cài đặt -> Tài khoản & Đồng bộ hóa và thêm tài khoản mới, những gì bạn thấy sau đó là danh sách tài khoản loại. Thường thì có mối quan hệ giữa các loại tài khoản và ứng dụng, ví dụ như các tài khoản Facebook được sử dụng cùng với Facebook. Thông thường, bạn sẽ thêm loại tài khoản mới nếu bạn có hệ thống phụ trợ khác để xử lý xác thực, v.v.

Nếu tôi hiểu chính xác, bạn sử dụng tài khoản Google nhưng muốn nó xuất hiện làm loại tài khoản của riêng bạn. Điều đó nghe có vẻ sai với tôi. Bạn sẽ kết thúc việc thực hiện lại việc xử lý tài khoản Google, với ít giá trị. Tôi tin rằng việc này đơn giản hơn đối với người dùng nếu bạn chỉ đơn giản là khôi phục những gì Google cung cấp cho bạn. Ứng dụng/dịch vụ/nhà cung cấp nội dung của bạn có thể được nhìn thấy khi nhấp vào tài khoản. Ví dụ: sau installing "Tasks" by "Team Task" (tuyên bố từ chối trách nhiệm: Tôi không liên kết với công ty đó), họ thêm "Công việc đồng bộ hóa" vào danh sách dữ liệu & tùy chọn đồng bộ hóa.

Nhưng nếu bạn thực sự muốn tạo loại tài khoản của riêng mình, hãy làm theo mẫu Sample Sync Adapter. Tìm mã Authenticator và các tài nguyên có liên quan (ví dụ: tệp kê khai, bố cục hoạt động, v.v.).

+0

tôi hiểu những gì bạn đang nói, tuy nhiên tôi sẽ được đồng bộ hoá dữ liệu mà là cụ thể cho ứng dụng của tôi và tài khoản người dùng . Nó có ý nghĩa để đặt "nhiệm vụ đồng bộ" dưới tài khoản google vì nó là dữ liệu google đang được đồng bộ hóa. Tôi đang sử dụng tài khoản google cho mục đích đăng nhập và tên người dùng tài khoản vì người dùng sẽ không phải nhớ mật khẩu khác và giảm khối lượng công việc của tôi – Patrick

+0

Tôi vẫn nghĩ tốt nhất là thêm dữ liệu của ứng dụng của bạn như một phần của tài khoản google của người dùng. Tuy nhiên, vì bạn không đồng ý cảm thấy tự do triển khai trình xác thực tùy chỉnh cho ứng dụng của mình. Nó khá dễ dàng bằng cách làm theo ví dụ về bộ điều hợp đồng bộ mẫu và sử dụng Tài khoản Google làm phía máy chủ (hoặc, có thể sử dụng appengine của bạn làm người hòa giải để ủy quyền). Trình xác thực bộ điều hợp đồng bộ hóa mẫu cũng đang sử dụng appengine cho chương trình phụ trợ giúp bạn dễ dàng hơn ở đó. – andyandy

2

Điều này thực sự có thể và tôi đã thực hiện điều này với thành công nhưng được cảnh báo rằng đó là một chút đau đầu.

Có một hướng dẫn tuyệt vời có sẵn gọi là writing-an-android-sync-provider-part-1

... đừng quên kiểm tra theo dõi trong part 2

Hơn thế nữa đó cũng là một ví dụ trong các mẫu Android SDK gọi SampleSyncAdapter đó là vô giá trong sự phát triển của tôi.

Với một công việc khó khăn chút và rất nhiều cà phê bạn sẽ có thể để làm việc này;)

+0

Tôi đã tự tìm ra nó, nhưng vẫn có một số thứ cần thiết.Tôi đã có xác thực với thiết lập tài khoản google trong ứng dụng của mình, vì vậy tôi thực sự không cần triển khai phương thức getAuthToken và các phương thức khác trong AuthenticationService. Về cơ bản, tôi chỉ muốn sử dụng chức năng syncadapter ... có bất kỳ mã nào bạn có thể chia sẻ từ dịch vụ xác thực không? bạn đã thêm các tài khoản trong ứng dụng của mình như thế nào? – Patrick

+0

Tất cả mã nằm trong mã ví dụ mẫu SampleSyncAdapter mà tôi đã liên kết trong câu trả lời. Tôi lột nó xuống những điều cơ bản (và đã phá vỡ nó một vài lần) sau đó bắt nó vào mã của tôi. Một gợi ý hữu ích mặc dù ... có một tập tin xml nhỏ mà điều này cần mà bạn sẽ tìm thấy trong dự án mẫu ... chắc chắn rằng bạn đặt nó trong thư mục xml của bạn ... neraly đã điên cố gắng để giải quyết đó;) – Merlin

+0

Bài viết này cũng có thể được sử dụng [connect-the-dots-with-android-syncadapter] (http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/) – Merlin

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