Użyłem nowszego kreatora NotificationCompat i nie mogę uzyskać powiadomienia, aby wydał dźwięk. Będzie wibrować i błyskać światłem. Dokumentacja Androida mówi, aby ustawić styl, z którym zrobiłem:
builder.setStyle(new NotificationCompat.InboxStyle());
Ale bez dźwięku?
Pełny kod:
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Notifications Example")
.setContentText("This is a test notification");
Intent notificationIntent = new Intent(this, MenuScreen.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
builder.setAutoCancel(true);
builder.setLights(Color.BLUE, 500, 500);
long[] pattern = {500,500,500,500,500,500,500,500,500};
builder.setVibrate(pattern);
builder.setStyle(new NotificationCompat.InboxStyle());
// Add as notification
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1, builder.build());
android
android-notifications
James MV
źródło
źródło
Odpowiedzi:
Czego brakowało w moim poprzednim kodzie:
źródło
Po prostu umieść plik dźwiękowy w
Res\raw\siren.mp3
folderze, a następnie użyj tego kodu:Dźwięk niestandardowy:
Dla dźwięku domyślnego:
W przypadku wibracji niestandardowych:
W przypadku domyślnych wibracji:
źródło
Inny sposób na domyślny dźwięk
źródło
UŻYJ Can Codeding
źródło
Po prostu umieść poniższy prosty kod:
Dla dźwięku domyślnego:
źródło
Musisz użyć RingtoneManager
Kod dla menedżera noficationmanagera z dzwonkiem alarmu można również ustawić dzwonek RingtoneManager.TYPE_RINGTONE
źródło
Musisz użyć kreatora. setSound
źródło
Możesz utworzyć funkcję:
Wywołaj tę funkcję, gdy otrzymasz powiadomienie.
Tutaj raw to folder w res, a powiadomienie to plik dźwiękowy w folderze raw.
źródło
Na Oreo (Android 8) i nowszych należy to zrobić dla niestandardowego dźwięku w następujący sposób (kanały powiadomień):
źródło
Najpierw umieść plik „yourmp3file” .mp3 w folderze raw (tj. W folderze Res)
2. miejsce w kodzie ...
To jest to, co umieściłem w moim onClick (View v), ponieważ tylko "context (). GetPackageName ()" nie będzie działać z tego miejsca, ponieważ nie uzyska żadnego kontekstu
źródło
W Android OREO lub nowszej wersji Po Zarejestruj kanał w systemie; nie możesz zmienić ważności ani innych zachowań powiadomień po tym samym kanale (przed odinstalowaniem aplikacji)
Priorytet również ma znaczenie Najbardziej tutaj Ustaw priorytet powiadomień na wysoki za pomocą
Poziom ważności widoczny dla użytkownika (Android 8.0 i nowsze)
1) Pilne Wydaje dźwięk i pojawia się jako powiadomienie heads-up -> IMPORTANCE_HIGH
2) Wysoki Wydaje dźwięk -> IMPORTANCE_DEFAULT
3) Średni Brak dźwięku -> IMPORTANCE_LOW
4) Niski Brak dźwięku i nie pojawia się na pasku stanu -> IMPORTANCE_MIN
to samo działa w tej samej kolejności Priorytet (Android 7.1 i starsze)
1) PRIORITY_HIGH lub PRIORITY_MAX
2) PRIORITY_DEFAULT
3) PRIORITY_LOW
4) PRIORITY_MIN
źródło
źródło
wywołaj tę funkcję w dowolnym miejscu. to działało dla mnie
źródło
przez instancję klasy Notification.builder (builder), która jest podana poniżej, możesz odtwarzać domyślny dźwięk przy powiadomieniu:
źródło
private void notification () {
Jest to pełne powiadomienie z dźwiękiem i wibracjami
źródło
Nie zależy od konstruktora lub powiadomienia. Użyj niestandardowego kodu dla wibracji.
źródło
Możesz wykonać następujące czynności:
Tworzysz pakiety między swoimi zasobami o nazwie raw i tam zachowujesz swoje dźwięki, a następnie po prostu to nazywasz.
źródło
// ustaw dźwięk powiadomienia (testowany do Androida 10)
źródło