Forums GAMERGEN
[TUTO] Définir un son comme sonnerie/notification
Voir le premier message non lu • 1 message
• Page 1 sur 1
[TUTO] Définir un son comme sonnerie/notification
Voici mon premier tuto pour la communauté GEN : Comment, depuis son application, permettre à un utilisateur d'utiliser un son comme sonnerie/notification.
Let's go !
Première étape : ouvrir la ressource son
Deuxième étape si la première s'est bien déroulée : le copier sur la carte SD de l'utilisateur
Troisième étape : le définir comme sonnerie/notification
J'espère que vous aurez apprécié ce tuto, si vous avez des commentaires ou des problèmes avec, je reste à votre disposition.
Let's go !
Première étape : ouvrir la ressource son
- Code: Select All Code
// Definition des variables représentant le son dans l'environnement Android
String soundName = "sonTutoriel.mp3";
String soundFolder = "raw";
String appPackage = "com.androidgen.tutosons";
// Ouvrir le son précédemment défini
int soundID = getResources().getIdentifier(soundName, soundFolder, appPackage);
InputStream fIn = getBaseContext().getResources().openRawResource(soundID);
int size=0;
byte[] buffer=null;
try
{
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
}
catch (IOException e)
{
Log.i("Erreur", e.toString());
}
Deuxième étape si la première s'est bien déroulée : le copier sur la carte SD de l'utilisateur
- Code: Select All Code
String path="/sdcard/media/audio/ringtones/"; // Le chemin complet où le son sera copié, ici dans le dossier media de la carte SD
String filename = soundName; // Je décide de l'enregister sous le même nom, mais libre à vous de le changer
boolean exists = (new File(path)).exists(); // On verifie si le dossier où on va placer le son existe déjà
if (!exists){new File(path).mkdirs();} // Sinon on le crée
// Sauvegarde du son
FileOutputStream save;
try
{
save = new FileOutputStream(path+filename);
save.write(buffer);
save.flush();
save.close();
}
// En cas d'erreur, on crée un log avec l'erreur pour l'analyser
catch (FileNotFoundException e)
{
Log.i("Erreur", e.toString());
}
catch (IOException e)
{
Log.i("Erreur", e.toString());
}
Troisième étape : le définir comme sonnerie/notification
- Code: Select All Code
// NE PAS MODIFIER
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename)));
File k = new File(path, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
// PEUT ETRE MODIFIE
// Parametrès du son, à ajuster selon vos envies
values.put(MediaStore.MediaColumns.TITLE, name);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); // Modifier ici si votre son n'est pas un mp3
values.put(MediaStore.Audio.Media.ARTIST, name);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true); // Si le son peut être utiliser comme sonnerie laisser true, sinon mettre false
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); // Si le son peut être utiliser comme notification laisser true, sinon mettre false
values.put(MediaStore.Audio.Media.IS_ALARM, true); // Si le son peut être utiliser comme alarme laisser true, sinon mettre false
values.put(MediaStore.Audio.Media.IS_MUSIC, false); // Si le sonest une musique mettre true, sinon laisser false
// NE PAS MODIFIER
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
Uri newUri = getContentResolver().insert(uri, values);
// CHOISIR
// Si vous voulez définir le son comme son de notification :
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, newUri);
// Sinon, si vous voulez le définir comme sonnerie :
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, newUri);
J'espère que vous aurez apprécié ce tuto, si vous avez des commentaires ou des problèmes avec, je reste à votre disposition.
Mes tutos Android (en Français) : http://www.thinkdroid.eu
-
Viish
Gamer du Dimanche
- Messages: 21
- Inscription: 03 Aoû 2010, 00:05
- Localisation: Grenoble
- Prénom: Sylvain
- Pays: France
- Sexe: Homme
1 message
• Page 1 sur 1