2012-11-02 34 views
22

Google Play services là một thư viện Android với mục tiêu là để cung cấp:Dịch vụ của Google Play: Cách xử lý các thiết bị không có Google Play?

  • OAuth xác thực 2.0
  • đăng nhập Google+
  • nút +1 của Google+
  • nhiều goodies khác

Nếu tôi đã sử dụng nó (ví dụ: vì tôi muốn đăng nhập bằng Google+), điều gì sẽ xảy ra với người dùng có thiết bị không có Google Play? (Nook, CyanogenMod, China Mobile, thiết bị cũ, v.v.)

CÂU HỎI: Ứng dụng của tôi có trở nên không tương thích với các thiết bị đó không? Nó sẽ được hiển thị như là tương thích nhưng sau đó sụp đổ, hoặc không hoạt động?
Có thực tiễn nào tốt nhất để ghi nhớ điều này khi sử dụng các dịch vụ của Google Play không?

Trả lời

23

Nếu tính năng từ Dịch vụ của Google Play là điều cần thiết cho ứng dụng của bạn thì sẽ không có cách nào để Ứng dụng của bạn hoạt động.

Bạn có thể kiểm tra xem các dịch vụ có được bật trong ứng dụng của bạn không bằng GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)
trả về ConnectionResult.SUCCESS nếu Dịch vụ của Play khả dụng.

Bây giờ bạn có thể thử thuyết phục người dùng cài đặt (nếu có thể) hoặc tắt tính năng đang sử dụng dịch vụ.

Vì Dịch vụ Google Play không phải là tính năng được khai báo trong tệp kê khai nên ứng dụng của bạn sẽ cài đặt tốt trên mọi thiết bị nhưng có thể bị lỗi sau này nếu bạn đang sử dụng API mà không kiểm tra xem chúng có khả dụng hay không.

Bạn có thể thử hành vi bằng trình mô phỏng. Chỉ cần tạo một AVD không có API của Google và đặt Ứng dụng của bạn lên đó.

+1

Phương pháp này đã được di chuyển và phản đối. Xem câu trả lời của @ Maxi dưới đây cho phương pháp mới: http://stackoverflow.com/a/34943703/1139908 – karl

-2

Nếu bạn đang bằng cách nào đó cần thiết để sử dụng dịch vụ Play, hoặc nếu bạn duy trì một ứng dụng di sản mà làm cho các cuộc gọi đến chơi Services, sau đó tôi muốn giới thiệu chiến lược này:

  1. On bắt đầu ứng dụng, kiểm tra xem Chơi dịch vụ là có sẵn hay không
  2. Nếu không có sẵn, chuyển hướng Dịch vụ play cuộc gọi đến NOGAPP

NOGAPP là một thực hiện mã nguồn mở của dịch vụ Google play.
Nó thiếu nhiều tính năng, nhưng đang được phát triển tích cực. Nhiều tính năng vẫn còn sơ khai.

Đối với dịch vụ vị trí, có LOST, một thay thế thả cho API vị trí dịch vụ Google Play.

Ứng dụng của bạn có thể không hoạt động hoàn hảo, nhưng ít nhất nó tốt hơn là bị lỗi.

Tất nhiên, tốt nhất là KHÔNG sử dụng Dịch vụ của Google Play ngay từ đầu.

22
GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context) 

không được dùng nữa!

Sử dụng:

GoogleApiAvailability api = GoogleApiAvailability.getInstance(); 
     int code = api.isGooglePlayServicesAvailable(activity); 
     if (code == ConnectionResult.SUCCESS) { 
      // Do Your Stuff Here 
     } else { 
      AlertDialog alertDialog = 
       new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage(
         "You need to download Google Play Services in order to use this part of the application") 
         .create(); 
      alertDialog.show(); 
     } 
+0

Không cần phải tạo hộp thoại của riêng bạn, sử dụng GoogleApiAvailability.getInstance(). GetErrorDialog (hoạt động, mã, 0) .show (); – Kyle

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