Eigener Klingelton Chooser

  • Hallo erstmal, ist mein erster Eintrag hier im Forum also bitte entschuldigt meine Form,
    Ich schreibe gerade an einem Programm für mein Maturaprojekt an meiner Schule und ein Teil davon soll ein Klingelton Chooser sein.
    Mein Code Funktioniert mit einer Liste. Nun zu meinem Problem: Jedes mal wenn ich die Applikation am Handy emmuliere bekomme ich nur den Error dass die App unerwartet geschlossen wurde. Hier erstmal mein Code:



    package grege.cmp;


    import java.io.File;


    import android.app.Activity;
    import android.app.ListActivity;
    import android.content.ContentValues;
    import android.content.Context;
    import android.content.ContextWrapper;
    import android.media.RingtoneManager;
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.MediaStore;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;


    public class ListViewRingtone extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setListAdapter(new ArrayAdapter(this, R.layout.list_item, COUNTRIES));


    ListView lv = getListView();
    lv.setTextFilterEnabled(true);


    lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView parent, View view,
    int position, long id) {
    // When clicked, show a toast with the TextView text
    Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
    Toast.LENGTH_SHORT).show();


    if(((TextView) view).getText() == "Die Ärzte - Deine Schuld"){
    File k = new File("/sdcard/media/ringtones", "Die Ärzte - Deine Sc.mp3"); // path is a file to /sdcard/media/ringtone


    ContentValues values = new ContentValues();
    values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
    values.put(MediaStore.MediaColumns.TITLE, "Deine Schuld");
    values.put(MediaStore.MediaColumns.SIZE, 5159386);
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
    values.put(MediaStore.Audio.Media.ARTIST, "Die Ärzte");
    //values.put(MediaStore.Audio.Media.DURATION, 230);
    values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
    values.put(MediaStore.Audio.Media.IS_ALARM, false);
    values.put(MediaStore.Audio.Media.IS_MUSIC, false);


    //Insert it into the database
    Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
    Uri newUri = getContentResolver().insert(uri, values);


    RingtoneManager.setActualDefaultRingtoneUri(
    ListViewRingtone.this,
    RingtoneManager.TYPE_RINGTONE,
    newUri
    );



    }
    }
    });
    }



    static final String[] COUNTRIES = new String[] {
    "Die Ärzte - Deine Schuld", "Nightwish - The Poet", "The Prodigy - invaders must die"
    };




    Hoffe auf baldige Antwort,


    Grege

  • Es wäre super wenn du den Fehler, den du im Logcat siehst, ist. Dann können wir schneller helfen :D

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Oh ja, tut mir leid habs vergessen:)
    Hier nochmal die Log Cat:


    Key dispatching timed out sending to grege.cmp/grege.cmp.ListViewRingtone
    Dispatch State: {{Keyevent.....
    Current State: {{null to Window...
    Continouing to wait for key to be dispatched


    Hoffe das Hilft weiter

  • Also der Fehler liegt laut dem Bild in der URI also dem Pfad.
    Bei dir im Code ist das wohl bei "Insert it into Database".
    Einfach nochmal gucken wie der Pfad richtig heißen müsste.
    Leider kann ich dir an meinem Handy keine genaue Lösung geben. Das ist zu mir zu kompliziert.^^
    Kann aber morgen mal genauer gucken ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Würd mich sehr freuen:) Ich weiß nur nicht genau was am link nicht passen soll??? Dachte daas wär der richitge link weil wenn ich am pc nachschau wo die datei gespeichert ist passt das eigentlich ;) Aber ja, schau bitte nach, würd mich freuen, wahrscheinlich seh ich nur den Wald vor lauter Bäumen nciht;)


    Mfg Lukas

  • Ach jah, der original Code aus dem Tutorial war da etwasa anders und zwar:




    //Insert it into the database
    Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
    Uri newUri = MainActivity.this.getContentResolver().insert(uri, values);
    Und ich wuste nciht was mit dem MainActivity gemeint war und nach etwaiigem rumprobieren hab ich das einfach
    zum Testen mal wegggelassen ;) Was macht das denn genau? Und was wär das bei mir? Mfg Lukas

  • So drittes Update :P Hab jetzt mal den Link vom Pfad k in den Link geändert den er mir im Bild, also in der Fehlermeldung, nennt...Jetzt krieg ich zwar keinen Fehlermeldung mehr aber eine Warnung die ich wieder in einem Bild anhänge...Und was ich auch seltsam find is, wenn ich nun den namen der Datei absichtlich falsch eingebe bekomm ich trotzdem nur die gleiche warning! Und wenn ich bei den Einstellungen dann naschau wa sich für einen Klingelton eingestellt habe, ist dort zwar der richitge name eingestellt aber unter dem klingelton namen ist nur der standard klingelton....seltsam :P


    Mfg Lukas :)

  • So. Hab mir nun mal einiges angeguckt und denke, dass es vll. an dem Pfad liegt. Erstmal könnte ein "/" fehlen und zweitens könnte es an dem "Ä" in Ärzte liegen. Nimm evt mal ein anderes Lied :)
    Ich guck aber nochmal weiter ;)


    Edit:
    Das Erste kannst du vergessen. Ist auch so ok.
    Also weitersuchen :(

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

    Einmal editiert, zuletzt von Kogoro ()

  • Ja dacht ich mir eventuell auch shcon und werd das auch gleich mal probieren, verstehe nur nicht warum der Pfad wenn ich ihn falsch eingebe das Programm nicht im geringsten beinflusst :P Naja mal weiterschaun, wär auf jedenfall sehr dankbar wenn wer ideen hätte ;)

  • Habe grade nochmal drübergeguckt.
    Kann es sein, dass die permissions nicht gesetzt sind?
    Du brauchst Write Permissions ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Also mir fällt nicht wirklich mehr was ein.
    Du könntest aber mal die LV testweise rausnehmen und dann probieren ob es funktioniert ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!