0
我用下面的代码获取通知的清单听起来可用的Android设备上:如何使用URI以编程方式播放通知声音而不将其设置为默认值?
public static ArrayList<String> getNotificationSounds(Activity curActivity) {
RingtoneManager manager = new RingtoneManager(curActivity);
manager.setType(RingtoneManager.TYPE_NOTIFICATION);
Cursor cursor = manager.getCursor();
ArrayList<String> list = new ArrayList<>();
while (cursor.moveToNext()) {
String id = cursor.getString(RingtoneManager.ID_COLUMN_INDEX);
String uri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX);
String name = cursor.getString((RingtoneManager.TITLE_COLUMN_INDEX));
list.add(name);
}
return list;
}
现在我要玩这些通知的声音之一(无图像,或标题),只是声音没有将其设置为默认值。
我见过很多的解决方案,建议设置一个声音默认使用
RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_NOTIFICATION,soundClipUri);
通过使用此URI,我是从上述
String uri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX);
我得到一个错误,指出数据源的方法获得无效。
所以,概括起来讲,
1)如何发挥通知声音,而不将其设置为默认?
2)如何获取并使用该通知声音的Uri?
编辑:当我试图从上述光标查询打印URI,我得到了相同的结果:
content://media/internal/audio/media
为所有可用的通知声音。
我们是否应该为此添加通知声音标题并将结果作为Uri传递?
代码播放通知:
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(),uri);
r.play();
“我得到一个错误说该数据源无效“ - ”Uri“是什么?你怎么使用它? – CommonsWare
编辑我的问题:) – SoulRayder
@CommonsWare:请现在看看。 – SoulRayder