2011-11-17 21 views
5

Tôi hiện đang phát triển một ứng dụng lấy dữ liệu từ máy chủ tại một khoảng thời gian nhất định. Tôi nhận ra rằng đây không phải là cách hiệu quả nhất vì nó thường sẽ thăm dò ý kiến ​​của máy chủ mà không lấy bất kỳ dữ liệu mới nào.Sử dụng các quyền mà Android 2.1 không biết (trên Android 2.1)

Giải pháp cho việc này là sử dụng C2DM và hiện tôi đang nghiên cứu cách thiết lập điều này. Tuy nhiên, khoảng 7% người dùng của tôi vẫn đang chạy Android 2.1 và tôi không muốn loại trừ chúng khỏi ứng dụng của mình.

Tôi đã tìm tôi có thể kiểm tra phiên bản Android nào người dùng đang chạy và sau đó quyết định có sử dụng C2DM hoặc bỏ phiếu (có mã cho cả hai trong cùng một gói ứng dụng) không. Tuy nhiên, để chạy mã C2DM, tôi sẽ cần chỉ định sử dụng các quyền nhất định trong tệp kê khai của mình và tôi lo lắng rằng với các quyền này, người dùng Android 2.1 sẽ không thể tải xuống tệp APK của tôi. Vì vậy, câu hỏi của tôi là nếu tôi đúng trong giả định rằng 2.1 người dùng sẽ không thể tải xuống ứng dụng có quyền C2DM và cách làm việc xung quanh nó nếu có. Tôi có phải tạo hai tệp APK khác nhau và cập nhật chúng riêng biệt với mọi cập nhật khác (tôi) cho ứng dụng không bị hạn chế trên các phiên bản Android cũ hơn không?

Xin cảm ơn trước.

+0

Đây là câu hỏi hay nhưng có tầm nhìn rất ít với tiêu đề hiện tại. Tôi đề nghị một cái gì đó như "quyền khác nhau cho mỗi phiên bản". –

+0

Cảm ơn bạn, tôi đã thay đổi tiêu đề thành một tiêu đề tổng quát hơn. – Lars

Trả lời

4

Google C2DM sẽ không hoạt động trước 2.2 NHƯNG bạn có thể duy trì các quyền trên tất cả các phiên bản. Như tất cả các bạn đang làm là thiết lập nhận trong manifest.

Vì vậy, khi bạn đăng ký trước 2.2, bạn sẽ không bao giờ nhận được kết quả cho các yêu cầu đăng ký của mình.

Chỉ cần để làm cho câu trả lời rõ ràng hơn:

như bạn đang xác định một sự cho phép tùy chỉnh:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

Pre 2.2 thiết bị này sẽ chỉ Bỏ qua phép này. Có nghĩa là bất kỳ thiết bị nào cũng có thể cài đặt với bộ này. Nó sẽ không hoạt động trước 2.2.

P.S. Nó cũng đáng chú ý. Google C2DM sẽ không hoạt động trên các thiết bị không có thị trường Android (và không có thiết lập thị trường Android).

+0

Vì vậy, chỉ cần làm rõ, cho phép 'com.google.android.c2dm.permission.RECEIVE' là quyền tùy chỉnh? Quyền này không được xác định bởi tôi (nhưng bởi google?). – Lars

+1

Quyền đó thực sự đề cập đến quyền trong ứng dụng Market Place ngày 2.2 trở đi. Theo tùy chỉnh của nó không có gì được đặt trong tốc độ thị trường để ngăn chặn mọi người tải xuống/làm việc trên các thiết bị trước 2.2. Rất tiếc, tôi không có liên kết để giải thích thêm về cách quyền tùy chỉnh hoạt động. Đủ để nói, trừ khi * android.permission.X * thị trường của nó sẽ bỏ qua nó. –

+0

Có vẻ như tôi cần phải đọc về các quyền. Cảm ơn bạn rất nhiều. – Lars

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