Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取默认铃声uri_Java_Android_Ringtone - Fatal编程技术网

Java 如何获取默认铃声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 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);