이 질문은 this question과 중복 될 수 있지만 코드에 약간의 차이가 있으므로 새로운 질문을 드리겠습니다.왜 RingtoneManager.setActualDefaultRingtoneUri가 작동하지 않았습니까? [android API-8]
RingtonePicker에서 선택한 벨소리를 설정할 수없는 문제가 있습니다. 나는 Support Library과 AndroidAnnotations을 사용합니다. 아마도 그런 문제를 일으킬 수 있습니다.
버튼이있는 조각이 있습니다. 버튼을 클릭하면 RingtonePicker가 실행됩니다. 사용자 선택 벨소리 및 응용 프로그램이 SharedPreference에 저장합니다. 다음 번에 사용자가 RingtonePicker를 열면 이전에 선택한 벨소리를 확인해야하며 그럴 수 없습니다. 을 RingtoneManager.setActualDefaultRingtoneUri 여기에 작동하지 않는 이유 - 여기
내 조각 두 단어 질문에서
@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();
}
}
}
}
이다?
업데이트 :
내 매니페스트의 WRITE_SETTINGS의 권한이 있습니다.
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
이 질문은 아직 오래되었지만 문제를 해결하지 못하면 지금 벨소리 설정에 대한 경험이 조금 있습니다. 당신이 가진 오류를 게시하고 싶거나, 왜 작동하지 않는지에 대한 설명을 줄 수 있다면 기꺼이 도와 드리겠습니다. 그렇지 않으면이 질문에 대한 답변을보고 싶습니다. –
@Paradopolis 아니요, 어떤 오류도 없었습니다. 아무도이 방법이 작동하지 않는 이유를 알지 못하면 작업 코드 일부를 기대합니다. –
@VitaliiKorsakov : 아마도' '이 필요합니다. 자세한 정보는 [here] (http://developer.android.com/reference/android/Manifest.permission.html#MODIFY_AUDIO_SETTINGS)를 참조하십시오. 루팅 된 뿌리가없는 장치 또는 에뮬레이터에서 코드를 테스트하고 있습니까? –
ChuongPham