Android: можно ли отправить изображение в Instagram, хранящееся в Google Cloud Storage? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть изображение, хранящееся в Google Cloud Storage.Я хочу разрешить пользователю моего приложения делиться им в Instagram.Таким образом, я получаю ссылку на него в хранилище, затем получаю URL-адрес для загрузки (объект URI) и помещаю его в дополнительные данные намерения, которое я использую для открытия Instagram.

Но Instagram говорит, что «изображениеневозможно загрузить ".Я думаю, это потому, что URI указывает на веб-URL, возвращаемый Cloud Storage, а не на URI, указывающий на локальный файл.Нет? Можно ли как-нибудь заставить мою программу работать, используя URI, указывающий на веб-URL, возвращенный Cloud Storage?

Sources

Код доступен ниже:

final Intent intent_share = new Intent(Intent.ACTION_SEND);
intent_share.setType("image/*");

FirebaseStorage firebase_storage = new SetupFirebaseStorage().getFirebaseStorage();
StorageReference storage_reference = firebase_storage.getReference();
storage_reference.child(image_uuid).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        intent_share.putExtra(Intent.EXTRA_STREAM, uri);
        activity.startActivity(Intent.createChooser(intent_share, "Share to"));
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        Toast.makeText(getContext(), "An error occurred during the publication image's URL retrieving.", Toast.LENGTH_LONG).show();
    }
});

1 Ответ

0 голосов
/ 01 декабря 2018

Как указано в официальной документации Instagram для разработчиков Android , в Intent должен быть указан URI, указывающий на медиа-путь в устройстве.

enter image description here

Однако, как вы сказали, вы вводите в намерение URL-адрес загрузки (см. Документацию метода getDownloadUrl ) вместо URI, указывающего наизображение на локальном устройстве.На самом деле, изображение даже не в вашем телефоне.Что вам нужно сделать, это загрузить изображение с полученным URL-адресом, а затем ввести в URI URI мультимедиа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...