这个问题可能与这个问题重复,但我发现代码有所不同,所以我提出了一个新问题。
问题是我无法在 RingtonePicker 中设置选择的铃声。我使用Support Library和AndroidAnnotations,也许它会导致这样的问题(尽管我对此表示怀疑)。
我有一个带有按钮的片段。单击按钮时,会触发 RingtonePicker。用户选择铃声,应用程序将其保存在 SharedPreference 中。下次用户打开 RingtonePicker 时,应该检查之前选择的铃声,我不能这样做。
这是我的片段
@EFragment(R.layout.pref_page)
public class PrefPage extends Fragment {
@Pref
MyPrefs_ myPrefs;
@Click(R.id.ringtone_button)
public void onClick() {
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION);
String uri = myPrefs.beepUri().get();
if (uri != "") {
Log.i("Log", "uri is " + uri);
RingtoneManager.setActualDefaultRingtoneUri(
getActivity(),
RingtoneManager.TYPE_NOTIFICATION,
Uri.parse(uri));
}
startActivityForResult(intent, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == -1) {
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null) {
String uriString = uri.toString();
Log.i("Log", "uriString is " + uriString);
myPrefs.edit().beepUri().put(uriString).apply();
}
}
}
}
两个词的问题是 -为什么 RingtoneManager.setActualDefaultRingtoneUri 在这里不起作用?
更新:
我的清单中有 WRITE_SETTINGS 权限。
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>