حذف یک آهنگ تعیین شده به عنوان زنگ گوشی (Ringtone)، از لیست زنگ ها (Ringtone) در تنظیمات گوشی، در برنامه نویسی اندروید
فرض کنید که یک آهنگ به عنوان گزینه ای قابل انتخاب برای زنگ گوشی (Ringtone) در لیست آهنگ های قابل انتخاب نمایش داده شده باشد (در قسمت تنظیمات) و اکنون بخواهیم آن را حذف کنیم. برای این منظور، ابتدا بهتر است کدهای مربوط به تعیین یک فایل صوتی موجود در حافظه خارجی (External Storage) به عنوان زنگ گوشی (Ringtone) را یادآوری کنیم و بعد کدهای مربوط به حذف را شرح بدهیم. قبل از هر چیز، باید اجازه های دسترسی زیر را به فایل AndroidManifest.xml از پروژه اندروید، اضافه کنیم :
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
اکنون فرض می کنیم که فایل صوتی مورد نظرمان دارای نام myFile.mp3 می باشد و در پوشه ای با نام myFolder در حافظه خارجی قرار دارد. اکنون برای تعیین آن فایل صوتی به عنوان زنگ گوشی (Ringtone)، کدهای زیر را می نویسیم (کدهایی که در Activity می نویسیم) :
File dir = new File (root.getAbsolutePath() + "/myFolder");
String filename = "myFile.mp3";
File k = new File(dir, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "myRingtonTitle");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "cssounds ");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
//Insert it into the database
Uri newUri= this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);
RingtoneManager.setActualDefaultRingtoneUri(
this,
RingtoneManager.TYPE_RINGTONE,
newUri
);
در کدهای بالا، نام myRingtonTitle را به عنوان نام آهنگ مورد نظرمان انتخاب کرده ایم که در لیست آهنگ های قابل انتخاب برای زنگ گوشی، با این نام نمایش داده می شود. همچنین نوع فایل را نیز به صورت mp3 تعیین کرده ایم که در صورت دلخواه، می توان آن را تغییر داد (با نوشتن علامت * می توان همه انواع فایل های صوتی معتبر را در نظر گرفت).
اکنون فرض کنید که بخواهیم آهنگ مورد نظر را از لیست زنگ های گوشی (Ringtone) حذف کنیم، برای این منظور، کدهای زیر را می نویسیم :
File dir = new File (root.getAbsolutePath() + "/myFolder");
String filename = "myFile.mp3";
File k = new File(dir, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "myRingtonTitle");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "cssounds ");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);
دقت شود که پس از حذف این زنگ، اگر قبلا به عنوان زنگ پیش فرض تعیین شده باشد، اکنون هیچ زنگی انتخاب نشده است (در صورت دلخواه می توانید زنگی را به عنوان زنگ پیش فرض به جای آن قرار دهید).