J’ai une application Android où j’essaie de lire des vidéos en fonction de l’heure du serveur (pas l’heure de l’horloge de l’appareil Android qui pourrait être différente)
08:00:00 – 08:04:59 -> video_url_1
08:05:00 – 08:09:59 -> video_url_2
08:10:00 – 08:14:59 -> video_url_3
- Comment vérifier l’identité de l’utilisateur sur mon serveur principal lorsque l’utilisateur est connecté depuis un service externe
- LibGDX: newServerSocket provoque une exception de pointeur null
- Erreur: ANDROID_HOME n’est pas défini et la commande “android” n’est pas dans votre PATH. Vous devez remplir au moins une de ces conditions.
- obtenir des progrès lors du téléchargement de l’image
- Envoi de messages depuis le serveur vers l’application Android
Ainsi, lorsque l’utilisateur ouvre l’application, si l’heure du serveur tombe dans la catégorie ci-dessus, les vidéos respectives sont lues, sinon une timer pour les secondes restantes est affichée en fonction de l’heure du serveur.
Si l’application Android est déjà ouverte, elle devrait alors commencer à lire la vidéo lorsque l’heure du serveur tombe dans l’une des catégories ci-dessus.
Faire un ping permanent sur le serveur pour son heure n’est pas une bonne option. Alors, comment pouvons-nous atteindre la fonctionnalité ci-dessus?
Je pense que Alarm Manager est votre solution.
Le stream serait le suivant:
Définissez l’exemple de gestionnaire d’alarme pour déclencher un récepteur de diffusion:
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE); Intent alarmIntent = new Intent(context, MyBroadCastReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT); Calendar calendar = Calendar.getInstance(); // add here your calculate minutes or seconds or hours calendar.add(Calendar.MINUTE, 45); if (alarmManager != null) { alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); }
Demandez ensuite à votre récepteur de diffusion de gérer toute autre action:
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // Do your magic, could be play the video or show a notification saying the video is ready to play } }
Si vous souhaitez plus d’informations sur les alarmes dans Android, consultez ce lien:
https://developer.android.com/training/scheduling/alarms.html