【发布时间】:2018-03-15 09:42:02
【问题描述】:
我需要有默认铃声的 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;
}
【问题讨论】:
-
不重复。我需要别的东西。
-
可以使用反射访问
mUri字段 -
你到底在问什么?
mUri字段是您刚刚传递给RingtoneManager.getRingtone()调用的Uri。 -
无论如何,正如 Arpan ßløødy ßadßøy 所建议的,您可以通过反射获得该字段:
Field f = Ringtone.class.getDeclaredField("mUri");、f.setAccessible(true);、Uri uri = (Uri) f.get(rt);。看看它给了你什么。