Я вызываю намерение поделиться изображением. это работает с большинством провайдеров, НО с Google+. Google+ открывает активность сообщения без изображения и отображает тост "Вы можете публиковать фотографии, сохраненные на вашем устройстве". в то же время.
File f = storeImage(image); // f = /data/data/com.myapp/files/1333070776978.jpg
Uri uri = Uri.fromFile(f);
Intent share = new Intent(Intent.ACTION_SEND);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TITLE,"Share that title");
share.putExtra(Intent.EXTRA_SUBJECT,"Share that subject");
share.putExtra(Intent.EXTRA_TEXT,"Check that out...");
share.putExtra("sms_body", "sms body");
startActivity(Intent.createChooser(share, "Share Image"));
Я сохраняю изображение с помощью
Context.openFileOutput(fileName, Context.MODE_WORLD_READABLE);
я понял, что, установив FLAG_GRANT_READ_URI_PERMISSION, я предоставляю конкретный доступ Google+ к этому файлу.
он работает, когда я храню изображение в MediaStore, но на самом деле я не хочу помешать галерее изображений пользователей.
ContentValues values = new ContentValues(2);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, f.getAbsolutePath());
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
любые советы приветствуются
Саймон