利用RingToneManager設置手機鈴聲(多選)

//需要傳入一個文件路徑(path),和context	

public static void setMyRingtone(Context context, String path) {
File sdfile = new File(path);
String ab_path = sdfile.getAbsolutePath();
ContentValues values = new ContentValues();
Uri uri_query = MediaStore.Audio.Media.getContentUriForPath(ab_path);
// 查詢音樂文件在媒體庫是否存在
Cursor cursor = context.getContentResolver().query(uri_query, null,
MediaStore.MediaColumns.DATA + "=?", new String[] { ab_path },
null);


if (cursor.moveToFirst() && cursor.getCount() > 0) {
String _id = cursor.getString(0);
Uri newUri = ContentUris.withAppendedId(uri_query,
Long.valueOf(_id));
RingtoneManager.setActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE, newUri);
Toast.makeText(context, "設置電話鈴聲成功1!", Toast.LENGTH_SHORT).show();
} else {


values.put(MediaStore.MediaColumns.DATA, sdfile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, sdfile.getName());
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.MediaColumns.SIZE, sdfile.length());

values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);

//注意這一行,一定是隻設置IS_NOTIFICATION這一個值。同理,如果設置通知音或鬧鈴也都只設置這一個值,只是在RingtoneManager.setActualDefaultRingtoneUri()這裏區別是哪種鈴聲



Uri uri = MediaStore.Audio.Media.getContentUriForPath(sdfile
.getAbsolutePath());
Uri newUri = context.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE, newUri);//這裏設置不同的TYPE來區別鈴聲種類
Toast.makeText(context, "設置電話鈴聲成功2!", Toast.LENGTH_SHORT).show();
System.out.println("setMyRingtone()-----鈴聲");
}


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章