Как сделать тост, когда Facebook ShareButton недоступен, потому что приложение отсутствует? - PullRequest
0 голосов
/ 06 сентября 2018

Я включил Facebook ShareButton в свое приложение для Android следующим образом:

SharePhoto photo = new SharePhoto.Builder()
     .setBitmap(map)
     .build();
SharePhotoContent content = new SharePhotoContent.Builder()
     .addPhoto(photo)
     .build();
mShareButton.setShareContent(content);

Я заметил, что если на моем телефоне не установлено приложение Facebook, ShareButton отображается серым цветом. Если я нажму на нее, как и следовало ожидать, ничего не произойдет. Я бы хотел, чтобы в этом случае всплыло Toast, чтобы сообщить пользователю, что ему нужно установить приложение Facebook, чтобы использовать функцию общего доступа. Как я могу это сделать? Я попытался добавить:

if (!mShareButton.isEnabled()) {
     mShareButton.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view)
         {
             Toast.makeText(getContext(), "Requires Facebook app.", Toast.LENGTH_SHORT).show();
         }
      });
}

Тем не менее, это ничего не сделало, когда я щелкнул серой кнопкой. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Ну, вы можете явно проверить, установлено приложение или нет ...

public boolean isFBInstalled() {
        PackageManager pm = getPackageManager();
        boolean isInstalled = false;
        try {
            pm.getPackageInfo("FB APP PACKAGE NAME", PackageManager.GET_ACTIVITIES);
            isInstalled = true;
        } catch (PackageManager.NameNotFoundException e) {
            isInstalled = false;
        }
        return isInstalled;
    }

, затем в кнопке onClick of Share просто проверьте, установлено приложение или нет, как показано ниже -

        if(isFBInstalled) {
            doFbStuff();
        }
        else {
            Toast.makeText(this, "Facekook App not Found!", Toast.LENGTH_SHORT).show();
        }
0 голосов
/ 06 сентября 2018

Хм, это почти кажется, что это никогда не устанавливает слушателя. И вы захотите это на месте, независимо от его состояния. Переместите это if внутрь onClick и четко справьтесь с условиями.

// pseudo
button.setListener {
    if button.isEnabled doFacebookThing()
    else showToast()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...