Есть ли способ подтвердить, было ли намерение поделиться в 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));
2 ответа
Лично я собирался сказать «используйте startActivityForResult()
» и проверьте, что возвращается. Однако, как вы можете узнать больше здесь, все не так просто. Если намерение отменяется пользователем, возвращается тот же номер, как если бы намерение было выполнено (для большинства приложений).
В конечном счете, в настоящее время для более простого общего намерения «Поделиться» вы не можете проверить, было ли оно успешным или нет.
В случае 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
}
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.