Я написал приложение, которое использует Environment.getExternalStoragePublicDirectory (
Environment.DIRECTORY_PICTURES), чтобы найти папку для хранения изображений. Затем я записываю jpg в эту папку и затем использую следующий код, чтобы позволить пользователю отправлять электронную почту, SMS, Facebook ... или любые приложения, настроенные на его телефоне.
Intent i = new Intent(Intent.ACTION_SEND);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setType("image/jpg");
File shareImg = new File(fileName);
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(shareImg));
startActivity(i);
Этот код отлично работает на устройствах, на которых я тестировал. Теперь я обнаружил, что пользователи, у которых нет SD-карты, не могут использовать этот код. Поэтому я решил попробовать записать образ во внутреннюю память. Мне удалось записать изображение в папку с приложениями и установить доступ как Context.MODE_WORLD_READABLE, но когда я запускаю намерение, GMail, SMS или любые другие карты просто сообщают мне, что они не могут прикрепить изображение , Я подумал, что проблема может заключаться в том, что изображение не было в реальной папке «картинки» устройства, но я не смог найти маршрут, эквивалентный Environment.getExternalStoragePublicDirectory (
Environment.DIRECTORY_PICTURES) для внутреннего хранения. Кто-нибудь еще мог сделать что-то подобное?