Как добавить файл в проект Android, установить его на устройство и открыть его?

У меня есть проект Android (2.2) в Eclipse (Helios). Я хочу добавить файл MP3 в проект, чтобы файл MP3 был развернут на устройстве вместе с приложением.

Затем я хотел бы открыть файл как объект File , а это значит, что мне нужно будет узнать полный путь (?) К файлу на устройстве, но я не знаю, как указать пути в Android.

По-видимому, в Froyo есть ошибка, которая предотвращает воспроизведение WAV.
Аудиофайлы должны быть помещены в каталог «res / raw» вашего проекта. Затем используйте id для воспроизведения (или попытайтесь воспроизвести его)

 MediaPlayer mp = MediaPlayer.create (контекст, R.raw.sound_file_1);
 mp.start ();

Информация: http://developer.android.com/guide/topics/media/index.html
Пример (mp3): http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i

Хорошо, я видел это на источнике другого проекта, поэтому я действительно не придумал его, но он работает.

Чтобы добавить любой файл в проект и позже использовать его, вам нужно поместить файл (двоичный, xml или любой другой) в папку с ресурсами вашего проекта.

В этом примере я просто скопирую ресурс в файловую систему, поэтому позже могу получить доступ к нему как к любому другому пользовательскому файлу. Вы также можете напрямую получить доступ к активам, взгляните на Ресурсы в документации.

 public void copyfile(String fileName) { if (!new File(fileName).exists()){ try { InputStream localInputStream = getAssets().open(fileName); FileOutputStream localFileOutputStream = getBaseContext().openFileOutput(fileName, MODE_PRIVATE); byte[] arrayOfByte = new byte[1024]; int offset; while ((offset = localInputStream.read(arrayOfByte))>0) { localFileOutputStream.write(arrayOfByte, 0, offset); } localFileOutputStream.close(); localInputStream.close(); // The next 3 lines are because I'm copying a binary that I plan // to execute, so I need it to have execute permission. StringBuilder command = new StringBuilder("chmod 700 "); command.append(basedir + "/" + paramString); Runtime.getRuntime().exec(command.toString()); Log.d(TAG, "File " + paramString + " copied successfully."); } catch (IOException localIOException) { localIOException.printStackTrace(); return; } } else Log.d(TAG, "No need to copy file " + paramString); } 

Я считаю, что есть, вероятно, лучший способ скопировать файл, но он работает и не замедляет мое приложение, даже если оно вызвано из onCreate (все файлы, которые я копирую, ниже 100 КБ, тем не менее, поэтому для больших файлов вы, вероятно, хотите Отдельная нить)

Вот как получить путь к вашим файлам:

 String path = getBaseContext().getFilesDir().getAbsolutePath(); 

Если вы хотите записать файл на другой путь, скажите «/ sdcard / DCIM / appPictures», я считаю, что вы можете использовать этот код:

 FileOutputStream outFile = FileOutputStream("/sdcard/DCIM/appPictures/" + fileName); 

А затем скопируйте его байтом по байту, как в примере выше.