Есть ли способ подтвердить, было ли намерение поделиться в Android успешным или неудачным? (Например, если я делюсь публикацией в Facebook, я хотел бы знать, была ли она успешно опубликована, или знать, была ли она отменена.)

Ниже приведен код намерения Android, который я использую для публикации. В настоящее время он запускает диалоговое окно, позволяющее пользователю выбрать, к какому приложению предоставить общий доступ:

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);    
activity.startActivity(Intent.createChooser(shareIntent, title));
9
code 2 Дек 2014 в 06:10

2 ответа

Лучший ответ

Лично я собирался сказать «используйте startActivityForResult()» и проверьте, что возвращается. Однако, как вы можете узнать больше здесь, все не так просто. Если намерение отменяется пользователем, возвращается тот же номер, как если бы намерение было выполнено (для большинства приложений).

В конечном счете, в настоящее время для более простого общего намерения «Поделиться» вы не можете проверить, было ли оно успешным или нет.

14
Community 23 Май 2017 в 12:26

В случае FacebookShareDialog Создайте свой диалог с помощью requestCode, затем onActivity проверьте код запроса и код результата. Для этого есть один класс в Facebook Sdk Name UiLifecycleHelper

В методе onCreate

uiHelper = new UiLifecycleHelper(this, null);
uiHelper.onCreate(savedInstanceState);




 FacebookDialog fbShardialog = new FacebookDialog.ShareDialogBuilder(
                        MainActivity.this)
                        .setLink("http://www.claro.com.ar/")
                        .setPicture("imagepath").setRequestCode(12)
                        .build();

                uiHelper.trackPendingDialogCall(fbShardialog.present());



OnActivityResult


 if (requestCode == 12) {
        if (resultCode == RESULT_OK) {
            //  show sucess message

        }
 else
//show failure message

    }
1
Nazik 13 Май 2015 в 07:15