Installationsort bestimmter Dateien bestimmen

  • 4 Antworten
  • Letztes Antwortdatum
P

Parad0xi

Neues Mitglied
1
Hallo :)
Also ich bin noch ein Anfänger in sachen Android und habe die Aufgabe ein paar mp3 files abzuspielen. Meine frage ist jetzt wie stelle ich es an, das bei der Installation der apk die mp3 files auf einen ordner auf der sd-karte gelangen?!
Ich hoffe ihr könnt mir weiterhelfen.
LG
 
Viel viel dank genau so etwas habe ich gesucht.
Werd ich gleich mal versuchen.
 
Also ich habe jetzt versucht eine App zu schreiben/Kopieren :p die zuerst die mp3 Files auf die SD Karte kopiert und dann mittels MediaMetadataRetriever versucht desen Titel auszulesen.

Code:
package com.example.test2;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.media.MediaMetadataRetriever;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.os.Build;

public class MainActivity extends ActionBarActivity {

	public EditText textState1;
	
	public void saveas(int ressound){
	     byte[] buffer=null;
	     InputStream fIn = getBaseContext().getResources().openRawResource(ressound);
	     int size=0;

	     //1st part
	     try {
	      size = fIn.available();
	      buffer = new byte[size];
	      fIn.read(buffer);
	      fIn.close();
	     } catch (IOException e) {
	         Log.e("TAG", "IOException first part");
	     }

	     String soundname = "hodor1";
	     String filename = soundname +".mp3";
	     String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).toString();
	     File fullPath = new File(path, filename);

	     boolean exists = (new File(path)).exists();
	     if (!exists){new File(path).mkdirs();}

	     //second part
	     FileOutputStream save;
	     try {
	         save = new FileOutputStream(fullPath);
	         save.write(buffer);
	         save.flush();
	         save.close();
	     } catch (FileNotFoundException e) {
	         Log.e("TAG", "FileNotFoundException in second part");
	     } catch (IOException e) {
	         Log.e("TAG", "IOException in second part");
	     }    

	    }
	
	public String getMetadataTitle(String filename) {
		
		String fullPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath()+filename;
		MediaMetadataRetriever mmr = new MediaMetadataRetriever();
        mmr.setDataSource(fullPath);

        String title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
        
		return title;
        
    }
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
        
        
        
        textState1 = (EditText) findViewById(R.id.editText1);
        int m1 = R.raw.about1;
        saveas(m1);
        textState1.setText(getMetadataTitle("about1"));
        
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {

        public PlaceholderFragment() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            return rootView;
        }
    }

}

Zur Zeit Crasht die App sobald ich sie starte ..
Sieht irgendjemand irgendetwas falsches?
 
Zuletzt bearbeitet:
Habs geschafft danke für die Hilfe :thumbup:
 
  • Danke
Reaktionen: ui_3k1

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
487
AnnaBauer21
AnnaBauer21
D
Antworten
8
Aufrufe
763
jogimuc
J
S
Antworten
7
Aufrufe
1.195
Silvasurf
S
AnnaBauer21
Antworten
6
Aufrufe
985
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten