Не удалось поделиться при совместном использовании URI изображения Firebase с другими приложениями? - PullRequest
0 голосов
/ 26 августа 2018

Во время обмена URI изображения с другими пользователями произошел сбойПоэтому я хочу найти решение о том, как поделиться изображениями моего приложения с другим приложением, используя Bluetooth, WhatsApp и т. Д.

Вот мой код:

ArrayList <Uri> imageUri = new ArrayList<>();

for (int i = 0; i < urimodel.size(); i++) {
 Uri model_uri = urimodel.get(i); //getting uri from here

 imageUri.add(model_uri);

 Intent shareIntent = new Intent();
 shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
 shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUri);
 shareIntent.setType("image/*");
 context.startActivity(Intent.createChooser(shareIntent, "Share images to.."));
}

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Мое предложение сначала сохранить изображение, которым вы хотите поделиться, затем передать uri

Ссылка: Поделиться изображением с другими приложениями

Попробуйте что-то подобное

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setType("image/*");

// For a file in shared storage.  For data in private storage, use a ContentProvider.
Uri uri = Uri.fromFile(getFileStreamPath(pathToImage));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(shareIntent)

Если вы хотите поделиться им через папку ресурсов, вам придется использовать ContentProvider.Посмотрите этот ответ о том, как это сделать:

https://stackoverflow.com/a/7177103/1369222

ИЛИ

Добавить провайдер файлов в Android Manifest

<provider
android:name="android.support.v4.content.FileProvider"
android:grantUriPermissions="true"
android:exported="false"
android:authorities="${applicationId}">

<meta-data
    android:name="android.support.FILE_PROVIDER_PATHS"
    android:resource="@xml/file_provider_paths"/>

file_provider_paths.xml

<paths>
    <cache-path name="cache" path="/" />
    <files-path name=”files” path=”/” />
</paths>

См. То Как использовать поддержку FileProvider для обмена контентом с другими приложениями?

0 голосов
/ 26 августа 2018

это должно быть из-за того, что ваша настройка хранилища в Firebase не позволяла читать и писать без аутентификации

, просто перейдите в раздел storage> rules и измените правила с помощью этого

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read;
      allow write: if request.auth != null;
    }
  }
}

thisкаждый сможет прочитать ваше изображение

Предупреждение о чтении и записи в базу данных хранения также учитывается, и вам необходимо оплатить стоимость, чтобы она оставалась работоспособной после определенного лимита. проверьте цены здесь

example

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