Définir un fichier comme sonnerie de notification
Bonjour,
J'ai développé une soundboard; avec la fonctionnalité traditionnelle sur un clic long: "Save as ... Ringtone, Notification, Alarm..."
Voici la fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| public boolean saveAs(int toCopy, String name, String path){
byte[] buffer = null;
InputStream fIn = getBaseContext().getResources().openRawResource(toCopy);
int size = 0;
try {
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
} catch (IOException e) {
// Auto-generated catch block
return false;
}
String filename = name + ".mid";
if (!(new File(path)).exists()){
new File(path).mkdirs();
}
FileOutputStream save;
try {
save = new FileOutputStream(path+filename);
save.write(buffer);
save.flush();
save.close();
} catch (FileNotFoundException e) {
// Auto-generated catch block
return false;
} catch (IOException e) {
// Auto-generated catch block
return false;
}
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());
values.put(MediaStore.MediaColumns.TITLE, name);
values.put(MediaStore.Audio.Media.ARTIST, "http://midizer.online.fr");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/midi");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
//Insert it into the database
this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);
return true;
} |
Voici un exemple d'appel pour la définir en notification:
Code:
saveAs(raw, "myTitle", "/sdcard/media/audio/notifications/");
Le fichier se copie bien sur la sdcard, et donc la sonnerie apparaît bien dans la liste des notifications disponibles.
MAIS cette sonnerie ne se met pas par défaut comme sonnerie pour notification (elle n'est pas cochée). Et donc j'aimerai savoir comment faire pour cela?