1.播放預設的提示音。
public static void playDefaultNotification(Context context) {
Uri defaultNotificationURI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone soundOfDefaultNotification = RingtoneManager.getRingtone(context, defaultNotificationURI);
soundOfDefaultNotification.play();
}
其中RingtoneManager.TYPE_NOTIFICATION為提示音的設定。若想播放預設的鬧鐘只要改為RingtoneManager.TYPE_ALARM
播放預設的鬧鐘只要改為RingtoneManager.TYPE_RINGTONE
2.播放裝置內其他的提示音。
首先取得裝置內的提示音清單。
public static Map<String, String> getSoundTitleAndUri(Context context, int type) {
RingtoneManager manager = new RingtoneManager(context);
manager.setType(type);
Cursor cursor = manager.getCursor();
Map<String, String> titleAndUri = new HashMap<>();
while (cursor.moveToNext()) {
String title = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX);
String id = cursor.getString(RingtoneManager.ID_COLUMN_INDEX);
String uri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX);
titleAndUri.put(title, uri+"/"+id);
}
return titleAndUri;
}
使用的方式如下(取得提示音的清單) getSoundTitleAndUri(context, RingtoneManager.TYPE_NOTIFICATION);
回傳的Map其key值即為提示音的名稱,value值為提示音的Uri。若想取得的是鬧鐘清單,只要改為RingtoneManager.TYPE_ALARM即可
若想取得的是來電鈴聲清單,只要改為RingtoneManager.TYPE_RINGTONE即可
若把該Map印出來如下。
key:Alloy value:content://media/internal/audio/media/89
key:Arc value:content://media/internal/audio/media/90
key:Bezel value:content://media/internal/audio/media/91
...
Alloy為提示音的名稱,其URI為 content://media/internal/audio/media/89最後要播放指定的提示音如下
public static void playSound(Context context, String uri) {
Uri soundUri = Uri.parse(uri);
Ringtone sound = RingtoneManager.getRingtone(context, soundUri);
sound.play();
}
使用的方法為 playSound(context,"content://media/internal/audio/media/89");//play Alloy
0 意見:
張貼留言