Tworzę powiadomienia w mojej aplikacji na Androida i chciałbym mieć opcję w moich preferencjach, aby ustawić dźwięk używany do powiadomienia. Wiem, że w aplikacji Ustawienia możesz wybrać domyślny dźwięk powiadomienia z listy. Skąd się bierze ta lista i czy istnieje sposób, aby wyświetlić tę samą listę w mojej aplikacji?Jak wyświetlić listę dostępnych dźwięków powiadomień na Androidzie
Odpowiedz
Wystarczy skopiować/wkleić kod z jednej z moich aplikacji, która robi to, czego szukasz.
Jest w obsługi onClick przycisku oznaczonego „ustawić dzwonek” lub coś podobnego:
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
this.startActivityForResult(intent, 5);
I ten kod przechwytuje wyboru dokonanego przez użytkownika:
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent)
{
if (resultCode == Activity.RESULT_OK && requestCode == 5)
{
Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null)
{
this.chosenRingtone = uri.toString();
}
else
{
this.chosenRingtone = null;
}
}
}
Również ja doradzaj moim użytkownikom, aby zainstalowali aplikację "Rings Extended" z Android Market. Wtedy, gdy to okno dialogowe zostanie otwarte na ich urządzeniu, np. Z mojej aplikacji lub z menu ustawień telefonu, użytkownik będzie miał dodatkową możliwość wyboru dowolnego z plików mp3 zapisanych na ich urządzeniu, a nie tylko wbudowanych dzwonków.
Albo po prostu trzymać to w XML preferencje:
<RingtonePreference android:showDefault="true"
android:key="Audio" android:title="Alarm Noise"
android:ringtoneType="notification" />
Pełna treść mojego próbki XML tylko do kontekstu:
<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference android:title="Some value"
android:key="someval"
android:summary="Please provide some value" />
<EditTextPreference android:title="Some other value"
android:key="someval2"
android:summary="Please provide some other value" />
<RingtonePreference android:showDefault="true"
android:key="Audio" android:title="Alarm Noise"
android:ringtoneType="notification" />
</PreferenceScreen>
Ta wygląda lepiej .. – Mohsen
Jest to metoda używam, aby uzyskać listę dźwięków powiadomień dostępne w telefonie :)
public Map<String, String> getNotifications() {
RingtoneManager manager = new RingtoneManager(this);
manager.setType(RingtoneManager.TYPE_NOTIFICATION);
Cursor cursor = manager.getCursor();
Map<String, String> list = new HashMap<>();
while (cursor.moveToNext()) {
String notificationTitle = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX);
String notificationUri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX);
list.put(notificationTitle, notificationUri);
}
return list;
}
EDYCJA: Jest to komentarz dotyczący ustawiania dźwięk w NotificationCompat.Builder. Ta metoda pobiera identyfikator dzwonka, którego używa telefon, zamiast czytelnego pliku TITLE, do którego trafiła inna metoda. Połącz identyfikator URI i identyfikator, a otrzymasz lokalizację dzwonków.
public ArrayList<String> getNotificationSounds() {
RingtoneManager manager = new RingtoneManager(this);
manager.setType(RingtoneManager.TYPE_NOTIFICATION);
Cursor cursor = manager.getCursor();
ArrayList<String> list = new ArrayList<>();
while (cursor.moveToNext()) {
String id = cursor.getString(RingtoneManager.ID_COLUMN_INDEX);
String uri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX);
list.add(uri + "/" + id);
}
return list;
}
Powyższy kod zwróci listę ciągów jak "content: // nośnik/wewnętrzny/audio/media/27" .. można następnie przekazać jeden z tych ciągów jako Uri Into the. setSound() jak:
.setSound(Uri.parse("content://media/internal/audio/media/27"))
nadzieję, że było wystarczająco jasne :)
To miło, ale jak ustawić dźwięk, który będzie odtwarzany za pomocą NotificationCompat.Builder.setSound (uri)? Ustawienie jednego z odczytów Uri z RingtoneManager nie działa – infero
Edytowałem post z odpowiedzią @infero, mam nadzieję, że jest jasne i rozwiązuje twój problem! – Murphybro2
dzięki za aktualizację. Próbowałem ustawić dźwięk w ten sposób z wcześniejszym identyfikatorem, ale użyłem identyfikatora, który nie istniał - :-(grrrr. Jeszcze raz dziękuję – infero
- 1. Jak mogę wyświetlić listę dostępnych algorytmów szyfrowania?
- 2. Eclipse jak wyświetlić bezpośrednio listę dostępnych funkcji
- 3. Jak wyświetlić listę dostępnych obiektów do wstrzykiwania w grails?
- 4. Zdalne wyświetlanie powiadomień na Androidzie
- 5. uzyskać listę dostępnych wyliczenia
- 6. Jak dodać dźwięk powiadomienia mojej aplikacji do listy dźwięków powiadomień?
- 7. Testowanie powiadomień w Androidzie
- 8. Jak wyświetlić listę tabel w gridview w Androidzie
- 9. Meteor: Jak wyświetlić listę zainstalowanych pakietów
- 10. Jak uzyskać listę wszystkich dostępnych poleceń powłoki?
- 11. Jak przedłużyć listę dostępnych lokalizacji Java?
- 12. Jak wyświetlić listę wszystkich pakietów w Nuget
- 13. listę wszystkich dostępnych sterowników drukarki (jak Kreator dodawania drukarki)
- 14. Wysyłanie lokalnych powiadomień w Androidzie
- 15. jak zdobyć listę ikon obszaru powiadomień?
- 16. Jak wyświetlić wiadomość z ikoną w obszarze powiadomień
- 17. Jak wyświetlić obraz w systemie powiadomień push (Gcm) na Androida?
- 18. jak wyświetlić centrum powiadomień na symulatorze systemu iOS?
- 19. Jak wyświetlić listę pobrań zasobów
- 20. Jak wyświetlić listę dostępnych metod dla danego obiektu lub pakietu w Perlu?
- 21. Linux: wyświetl listę wszystkich dostępnych menedżerów okien.
- 22. Uzyskiwanie listy dostępnych dzwonków w Androidzie
- 23. Odsyłacz zawierający listę dostępnych zdarzeń JavaScript?
- 24. Jak wyświetlić listę skonfigurowanych repozytoriów?
- 25. Jak wyświetlić listę zależności JAR
- 26. Wyświetl listę galerii zdjęć na Androidzie
- 27. Wiele powiadomień z jedną ikoną paska stanu w Androidzie
- 28. Jak znaleźć pełną listę dostępnych kolejek pbs torque?
- 29. Jak uzyskać listę dostępnych plików za pomocą wget lub curl?
- 30. Jak uzyskać listę dostępnych przeglądarek z koncentratora selenowego?
Dziękuję you.I jestem w stanie wyświetlić dzwonek z powodzeniem przy użyciu kodu Ale ** onActivityResult() błędu ** metoda Dostaję " Nie można utworzyć statycznego odwołania do niestatycznej metody getParcelableExtra (String) z wpisz Intent "at your line" Uri uri = Intent.getParcelableExtra (RingtoneManager.EXTRA_RINGTONE_PICKED_URI); " – Dharmendra
Ten wiersz powinien brzmieć "Uri uri = intent.getParcelableExtra ...". Zwróć uwagę na "i" w "intencji". Tylko literówka na powyższym kodzie. – zeh
Pomocny kod i umysł mała litera w intent.getParcelableExtra ... Wielkie dzięki – djk