رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تشخیص نصب بودن Google play service و حالتهای ممکن در دریافت جواب
#1
میخوام بدونم کدوم یکی از این حالتها بیشتر اتفاق میافته و آیا لازمه همه اینها رو بزارم بمونه؟
کار این تابع اینه که چک میکنه که الان وضعیت گوگل پلی سرویس در چه حالتی هست که اگر SUCCESS اتفاق بیافته میتونیم کارهای مربوط به پوش نوتیفیکیشن رو انجام بدیم

هنوز حالتهای دیگه هم داره که تو این تابع نیست:
GoogleApiAvailability avail;
 int PLAY_SERVICE_STATUS = avail.isGooglePlayServicesAvailable(this);
 checkPlayService(PLAY_SERVICE_STATUS);

private void checkPlayService(int PLAY_SERVICE_STATUS)
    {
        switch (PLAY_SERVICE_STATUS)
        {
            case ConnectionResult.API_UNAVAILABLE:
                //API is not available
                break;
            case ConnectionResult.NETWORK_ERROR:
                //Network error while connection
                break;
            case ConnectionResult.RESTRICTED_PROFILE:
                //Profile is restricted by google so can not be used for play services
                break;
            case ConnectionResult.SERVICE_MISSING:
                //service is missing
                break;
            case ConnectionResult.SIGN_IN_REQUIRED:
                //service available but user not signed in
                break;
            case ConnectionResult.SUCCESS:
                break;
        }
    }
پاسخ
تشکر شده توسط:
#2
از این متد استفاده کنید:
public boolean checkPlayServices() {
   GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
   int resultCode = apiAvailability.isGooglePlayServicesAvailable(this);
   if (resultCode != ConnectionResult.SUCCESS) {
       if (apiAvailability.isUserResolvableError(resultCode)) {
           Dialog errorDialog = apiAvailability.getErrorDialog(this, resultCode, 1);
           errorDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
               @Override
               public void onDismiss(DialogInterface dialog) {
                   System.exit(0);
               }
           });
           errorDialog.show();
       } else {
            new AlertDialog.Builder(this)
                .setTitle("خطا در Google Play Services")
                .setMessage("متأسفانه سرویس‌های گوگل در دستگاه شما پشتیبانی نمی‌شود")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        System.exit(0);
                    }
                })
                .show();
       }
       return false;
   }
   return true;
}
پاسخ
تشکر شده توسط:
#3
ممنون.

الان این کد رو گذاشتم توی برنامه و اجرا میکنم اما من میخوام پیغام مناسب به کاربر بدم و نمیخوام انگلیسی باشه.

چجوری میتونم تغییرش بدم که پیغام مناسب بده؟
پاسخ
تشکر شده توسط:
#4
میتونین توی قسمت if (نه قسمت else) از همون Switch استفاده کنید. درواقع این کد داره میگه آیا مشکل پیش‌آمده توسط کاربر قابل برطرف‌شدن هست یا نه. مثلاً مکنه Google Play Services نیاز به بروزرسانی داشته باشه یا موارد دیگه. اگه کلاً قابل استفاده نباشه و سازگار نباشه، پیغام خطای قسمت else ظاهر میشه.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان