2009-03-08 12 views

Odpowiedz

47

W zależności od potrzeb istnieje kilka alternatyw, aby wyświetlić ekran ustawień "Dzwonki" z aplikacji.

Jeśli chcesz wyświetlić rzeczywisty ekran preferencji, który jest zwykle dostępny w ustawieniach systemowych - umożliwiając użytkownikowi modyfikowanie uniwersalnych ustawień dzwonka telefonu w aplikacji - możesz użyć stałej ACTION_SOUND_SETTINGS z klasy android.provider.Settings, aby utworzyć new Intent, aby rozpocząć działanie ustawień dźwięku.

startActivityForResult(new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS), 0); 

Jeśli chcesz wybrać niestandardowy dzwonek do wykorzystania w aplikacji trzeba dodać RingtonePreference w pliku definicji preferences.xml, tak:

<RingtonePreference 
    android:key="alerts_ringtone" 
    android:title="Select ringtone" 
    android:showDefault="true" 
    android:showSilent="true" 
    android:ringtoneType="" 
/> 

Będziesz w stanie uzyskać Identyfikator URI do wybranej preferencji w domyślnej aplikacji SharedPreferences przy użyciu alerts_ringtone jako klucza.

Ta ostatnia technika używa klasy PreferenceActivity do przechowywania opcji preferencji. Nie opiszę tego szczegółowo tutaj, ponieważ dokumentacja Androida ma numer good writeup i przykładowy kod.

+0

Dzięki. Chcę otworzyć ekran preferencji. Tak więc wykonanie instrukcji Intent pozwoli użytkownikowi ustawić dzwonek lub gdy tylko wybierze dzwonek, wróci do aplikacji i aplikacja będzie musiała go ustawić? – lostInTransit

+1

Wykonywanie instrukcji Intent pozwoli użytkownikowi ustawić dzwonek - Twoja aplikacja nie będzie musiała nic robić, aby poradzić sobie z nim osobno. –

+1

Uwaga dla drugiej odpowiedzi jest błąd w pierwszym fragmencie kodu, nawias zamykający jest potrzebny tuż po pierwszym parametrze w konstruktorze Intent. Chciałbym edytować, ale musi być ponad 6 znaków :) – Brizee

6

To alternatywne rozwiązanie problemu. Pracuję też nad tym samym zadaniem, ale powyższy kod nie działa dla mnie. Zmieniono kod na

startActivityForResult(new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS), 0); 

i teraz działa.

+0

To nie działa dla Nougat, proszę o pomoc. aplikacja nie otwiera się – developer