Java 如何获取默认铃声uri
我需要有默认铃声的URI 我可以使用此代码使用默认铃声Java 如何获取默认铃声uri,java,android,ringtone,Java,Android,Ringtone,我需要有默认铃声的URI 我可以使用此代码使用默认铃声 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); Ringtone rt = RingtoneManager.getRingtone(context,uri); 在rt(铃声)中,我可以在截图中看到mUri,但它不是公共财产,所以我不能拥有它 我怎么能拥有那处房产 注意:RingtoneManage
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone rt = RingtoneManager.getRingtone(context,uri);
在rt(铃声)中,我可以在截图中看到mUri,但它不是公共财产,所以我不能拥有它
我怎么能拥有那处房产
注意:RingtoneManager.java中有一个getUri,但它是隐藏的
/** {@hide} */
public Uri getUri() {
return mUri;
}
公共无效铃声列表(){
RingtoneManager manager=新的RingtoneManager(此);
manager.setType(铃声管理器.TYPE_铃声);
Cursor=manager.getCursor();
while(cursor.moveToNext()){
String title=cursor.getString(ringtonemager.title\u COLUMN\u INDEX);
stringuri=cursor.getString(ringtonemager.uri\u COLUMN\u索引);
//对铃声的标题和URI做些什么
Log.d(“URI”,即“+URI”);
}
}
也给予许可
希望这对你有用!:) 可能重复的不重复。我还需要一些东西。你可以使用反射来访问
mUri
字段你到底在问什么?该mUri
字段是刚刚传入RingtoneManager.getRingtone()
调用的Uri
字段。在任何情况下,正如Arpanßlødyßadßøy所建议的,您都可以通过反射得到该字段:字段f=Ringtone.class.getDeclaredField(“mUri”)代码>,f.setAccessible(true)代码>,Uri=(Uri)f.get(rt)代码>。看看这能给你什么,它会回来的content://media/internal/audio/media 但是我需要content://media/internal/audio/media/110
public void RingtonesList() {
RingtoneManager manager = new RingtoneManager(this);
manager.setType(RingtoneManager.TYPE_RINGTONE);
Cursor cursor = manager.getCursor();
while (cursor.moveToNext()) {
String title = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX);
String uri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX);
// Do something with the title and the URI of ringtone
Log.d("URI",""+uri);
}
}
Also give permission
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
Uri defaultRingtoneUri = RingtoneManager.getActualDefaultRingtoneUri(getActivity().getApplicationContext(), RingtoneManager.TYPE_RINGTONE);
Ringtone defaultRingtone = RingtoneManager.getRingtone(getActivity(), defaultRingtoneUri);