To pytanie może być duplikatem numeru this question, ale widzę pewną różnicę w kodzie, więc zadałem nowe pytanie.Dlaczego funkcja RingtoneManager.setActualDefaultRingtoneUri nie mogła działać? [Android API-8]
Problem polega na tym, że nie można ustawić wybranego dzwonka w aplikacji RingtonePicker. Używam Support Library i AndroidAnnotations, może to może powodować takie problemy (choć wątpię w to).
Mam Fragment z przyciskiem w nim. Kliknięcie przycisku uruchamia RingtonePicker. Użytkownik wybiera dzwonek i aplikacja zapisuje go w SharedPreference. Następnym razem, gdy użytkownik otworzy RingtonePicker, wybrany wcześniej dzwonek powinien zostać sprawdzony i nie mogę tego zrobić.
Oto moja Fragment
@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();
}
}
}
}
w dwóch słowach pytanie - dlaczego RingtoneManager.setActualDefaultRingtoneUri nie pracuje tutaj?
AKTUALIZACJA:
mam pozwolenie WRITE_SETTINGS w moim manifestu.
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
To pytanie jest trochę stare, ale jeśli nigdy nie doszło do rozwiązania problemu, miałem już trochę doświadczenia z ustawianiem dzwonków. Jeśli chcesz opublikować błąd, który popełniłeś, lub możesz podać opis, dlaczego to nie działa, chętnie pomogę. W przeciwnym razie chciałbym zobaczyć odpowiedź na to pytanie. –
@Paradopolis Nie, nie miałem żadnych błędów. Jeśli nikt nie wie, dlaczego ta metoda nie mogła działać, oczekuję jakiegoś działającego kodu. –
@VitaliiKorsakov: Może wymaga ' '. Aby uzyskać więcej informacji, zobacz [tutaj] (http://developer.android.com/reference/android/Manifest.permission.html#MODIFY_AUDIO_SETTINGS). Czy testujesz swoje kody na zrootowanym, nierootowanym urządzeniu lub emulatorze? –
ChuongPham