Android - Настройка звука текстового сообщения не меняет звук? - PullRequest
2 голосов
/ 02 апреля 2012

Моя проблема в том, что код не изменяет мой сигнал будильника или сигнал, когда я получаю текстовое сообщение.

Следующие работы:

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

    }

Кто-нибудь знает, почему Уведомление не меняет звучание SMS-сообщений, но Рингтон работает. Это в основном тот же код ??

EDIT I found something on Stack Overflow here (But I do Not understand it can someone clarify?) /6042826/kak-izmenit-tonalnyi-signal-sms-dlya-android-nesmotrya-na-tekuschuy-nastroiku-tonalnogo-signala-sms

Заранее спасибо!

1 Ответ

2 голосов
/ 11 апреля 2012

Таким образом, решение состоит в том, чтобы скопировать звук из папки raw в SDCard и оттуда сделать следующее:

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