2012-06-16 1 views
3

Мне нужно установить индивидуальный сигнал будильника в моем приложении. Может ли кто-нибудь просто рассказать мне, как настроить пользовательский рингтон или Mp3 в качестве сигнала тревоги? Любая помощь будет оценена по достоинству.Как настроить пользовательский сигнал будильника в android

+0

http://stackoverflow.com/questions/6464080/how-to-play-mp3-file-in-raw-folder-as-notification-sound-alert-in-android Вот другое решение для вас. Бест, Шахзад –

+0

http://stackoverflow.com/questions/8314727/setting-a-custom-ringtone-produces-filenotfound-exception Вот еще один ответ. Shahzad Majeed. –

+0

спасибо Shahzad :) Ур ссылки полезны :) – Munazza

ответ

0

Попробуйте

добавить любой файл .mp3 в нестандартном месте папки имя этого файла

public void setAlarm() { 
     File file = new File(Environment.getExternalStorageDirectory(), 
       "/Your Directory Name"); 
     if (!file.exists()) { 
      file.mkdirs(); 
     } 

     String path = Environment.getExternalStorageDirectory() 
       .getAbsolutePath() + "/Your Directory Name"; 

     File f = new File(path + "/", filename + ".mp3"); 

     Uri mUri = Uri.parse("android.resource://" + getContext().getPackageName() + "/raw/" + filename); 
     ContentResolver mCr = getContext().getContentResolver(); 
     AssetFileDescriptor soundFile; 
     try { 
      soundFile = mCr.openAssetFileDescriptor(mUri, "r"); 
     } catch (FileNotFoundException e) { 
      soundFile = null; 
     } 

     try { 
      byte[] readData = new byte[1024]; 
      FileInputStream fis = soundFile.createInputStream(); 
      FileOutputStream fos = new FileOutputStream(f); 
      int i = fis.read(readData); 

      while (i != -1) { 
       fos.write(readData, 0, i); 
       i = fis.read(readData); 
      } 

      fos.close(); 
     } catch (IOException io) { 
     } 

     ContentValues values = new ContentValues(); 
     values.put(MediaStore.MediaColumns.DATA, f.getAbsolutePath()); 
     values.put(MediaStore.MediaColumns.TITLE, filename); 
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
     values.put(MediaStore.MediaColumns.SIZE, f.length()); 
     values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name); 
     values.put(MediaStore.Audio.Media.IS_ALARM, true); 






     Uri uri = MediaStore.Audio.Media.getContentUriForPath(f.getAbsolutePath()); 
     getContext().getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + f.getAbsolutePath() + "\"", null); 
     Uri newUri = mCr.insert(uri, values); 

     try { 
      RingtoneManager.setActualDefaultRingtoneUri(getContext(), 
        RingtoneManager.TYPE_ALARM, newUri); 
      Settings.System.putString(mCr, Settings.System.ALARM_ALERT, 
        newUri.toString()); 
      Toast.makeText(getContext(), "Done", Toast.LENGTH_SHORT).show(); 

     } catch (Throwable t) { 

     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^