У меня есть изображение, хранящееся в 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();
}
});