Как переопределить метод Content Provider'а openFile?

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
SolidScorpion
Сообщения: 1
Зарегистрирован: 01 авг 2013, 16:17

Как переопределить метод Content Provider'а openFile?

Сообщение SolidScorpion » 01 авг 2013, 17:53

Здравствуйте, дали следующее задание.
Есть приложение на подобии галлереи, внутри есть хмл файл с которого беруться данные, я его распарсил и когда начинается активити то идёт проигрывание музыкального файла полученного по ссылке которая содержиться в хмл файле. Я добавил кнопку для отправки письма который аттачит данный файл который проигрывается, но хотя в почтовом клиенте и отображается что файл аттачится, но по факту присылается только тело письма с темой, без аттача.

http://i.imgur.com/L81vB9b.png

Может кто то сможет подсказать что именно я делаю не так? Или в какую сторону нужно искать\ работать?
Вот код активити которое это делает: http://pastebin.com/uzdJYxab

А если быть точным вот код моей кнопки которая отвечает за всё вышесказанное :)

Код: Выделить всё

sendEmail_button.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
                                intent.setType("*/*");
                                intent.putExtra(Intent.EXTRA_SUBJECT, "Attachment from app");
                                intent.putExtra(Intent.EXTRA_TEXT, "Sending mp3 file " + title);

                                intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"some_email@email.com"});
                                ArrayList<Uri> uris = new ArrayList<Uri>();

                                uris.add(Uri.fromFile(new File(trackUrl)));

                                intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

                                startActivity(Intent.createChooser(intent, "Send mail"));
                        }
                });    
Если кому интересно вот ссылка на мой проэкт (там ничего сверхъестественного, это задание которое я получил на курсах): https://docs.google.com/file/d/0B-91m-6 ... sp=sharing
Возможно есть какой то способ чтобы приаттачить аудио файл полученный по ссылке в intent? Мне нужно пользоваться intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uri); как частью моего задания, однако я не реализовал другую часть, а именно:
ACTION_SEND_MULTIPLE would use external activity which should access sound file. To allow such access you need: - Create ContentProvider. - Override public ParcelFileDescriptor openFile(Uri uri, String mode)
Означает ли это что только Content Provider может получить файл по ссылке и вложить его в письмо? Я очень много искал но не нашёл четкого алгоритма переопределения public ParcelFileDescriptor openFile(Uri uri, String mode), возможно у кого то был опыт работы с данным методом и он может мне указать правильное направление? Я не прошу чтобы за меня это решили, просто что бы хотя бы указали на возможные ошибки и дали совет.

Ответить