2012-04-01 11 views
2

Mein Problem ist, dass der Code nicht meinen Alarmton ändert, oder den Ton für, wenn ich eine SMS erhalte.Android - Einstellen der Textnachricht Sound ändert nicht den Sound?

Die folgenden Werke:

 private void setRingTone(int RawId, String HumanName, String fileName) 
    { 

     Uri path = Uri.parse("android.resource://"+ getPackageName() +"/raw/" + fileName); 

     RingtoneManager.setActualDefaultRingtoneUri(
       getApplicationContext(), RingtoneManager.TYPE_RINGTONE, 
       path); 
     Log .i("TESTT", "Ringtone Set to Resource: "+ path.toString()); 

     RingtoneManager.getRingtone(getApplicationContext(), path) 
       .play(); 

    } 

diese 2 jedoch nicht:

  1. private void setTextTone (int RawId, String HumanName, String filename) {

    Uri path = Uri.parse("android.resource://"+ getPackageName() +"/raw/" + fileName); 
    
        RingtoneManager.setActualDefaultRingtoneUri(
          getApplicationContext(), RingtoneManager.TYPE_NOTIFICATION, 
          path); 
        Log .i("TESTT", "Ringtone Set to Resource: "+ path.toString()); 
    
        RingtoneManager.getRingtone(getApplicationContext(), path) 
          .play(); 
    

    }

Weiß jemand, warum die Benachrichtigung nicht den Klang von SMS-Nachrichten ändert, aber Ringtone funktioniert. Es ist im Grunde der gleiche Code ??

EDIT I found something on Stack Overflow here (But I do Not understand it can someone clarify?) http://stackoverflow.com/questions/9545906/how-do-i-change-the-android-sms-tone-despite-of-current-sms-tone-setting 

Vielen Dank im Voraus!

Antwort

2

So ist die Lösung ist, den Ton aus dem rohen Ordner in die SD-Karte zu kopieren und von dort aus gehen Sie wie folgt vor:

File k = new File(path, filename); 

    ContentValues values = new ContentValues(); 
    values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); 
    values.put(MediaStore.MediaColumns.TITLE, "TwiAppclip"); 
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*"); 
    values.put(MediaStore.Audio.Media.ARTIST, "cssounds "); 
    values.put(MediaStore.Audio.Media.IS_RINGTONE, false); 
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 
    values.put(MediaStore.Audio.Media.IS_ALARM, false); 
    values.put(MediaStore.Audio.Media.IS_MUSIC, false); 

    Uri uri = MediaStore.Audio.Media.getContentUriForPath(k 
     .getAbsolutePath()); 
    //do a delete here before inserting 
    Uri newUri = getApplicationContext().getContentResolver().insert(uri, values); 

    RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), 
     RingtoneManager.TYPE_RINGTONE, newUri);