2012-04-01 99 views
2

我的问题是,代码不会改变我的闹钟铃声,或者当我收到短信时的音调。Android - 设置文本消息声音不会改变声音?

以下工作:

 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(); 

    } 

不过,这些2不要:

  1. 私人无效setTextTone(INT RawId,字符串HumanName,字符串文件名) {

    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(); 
    

    }

有谁知道为什么通知不会改变短信的声音,但铃声的作品。它基本上是相同的代码?

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 

在此先感谢!

回答

2

因此,解决方案是将声音从原始文件夹复制到SD卡,并从那里执行以下操作:

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);