Appearance
API Device Info - TVDashboard ​
Vue d'Ensemble ​
L'API Device Info de TVDashboard fournit des méthodes pour récupérer les informations matérielles des appareils TV connectés. Ces méthodes sont implémentées avec un système de fallback automatique selon la plateforme.
Méthodes Disponibles ​
getMacAddress(): Promise<string> ​
Récupère l'adresse MAC de l'appareil.
Retour : Promise<string> - Adresse MAC formatée ou 'unknown' si indisponible
Plateformes supportées :
- Samsung HG+ : APIs Tizen via bridge hôte (priorité), Capacitor en fallback
- LG webOS : APIs idcap réseau
- Android/Philips : Identifiant d'appareil (souvent l'adresse MAC)
- Chromecast : Service whoami
Exemple :
typescript
const dashboard = await TVDashboard.init(deviceTypology);
const mac = await dashboard.getMacAddress();
console.log('Adresse MAC:', mac); // "AA:BB:CC:DD:EE:FF"getManufacturer(): Promise<string> ​
Récupère le fabricant de l'appareil.
Retour : Promise<string> - Nom du fabricant ou 'Unknown Manufacturer' si indisponible
Plateformes supportées :
- Toutes : API Capacitor Device.getInfo() avec fallbacks spécifiques
Exemple :
typescript
const manufacturer = await dashboard.getManufacturer();
console.log('Fabricant:', manufacturer); // "Samsung"getModel(): Promise<string> ​
Récupère le modèle de l'appareil.
Retour : Promise<string> - Nom du modèle ou 'Unknown Model' si indisponible
Plateformes supportées :
- Toutes : API Capacitor Device.getInfo() avec fallbacks spécifiques
Exemple :
typescript
const model = await dashboard.getModel();
console.log('Modèle:', model); // "UE55TU8072"Architecture Technique ​
Système de Bridge Unifié ​
Les méthodes utilisent le UnifiedPlatformBridge qui :
- Essaie d'abord la communication iframe avec l'hĂ´te (pour Samsung)
- Utilise des fallbacks spécifiques à chaque plateforme si l'iframe échoue
Format des Messages Bridge ​
RequĂŞte :
typescript
{
type: 'TV_API_REQUEST',
requestId: string,
action: 'GET_MAC' | 'GET_MODEL' | 'GET_MANUFACTURER',
params: {}
}Réponse :
typescript
{
type: 'TV_API_RESPONSE',
requestId: string,
ok: boolean,
payload: any | { message: string } // en cas d'erreur
}Implémentations par Plateforme ​
| Plateforme | getMacAddress | getManufacturer | getModel | Source |
|---|---|---|---|---|
| Samsung HG+ | Bridge (priorité) | Bridge (priorité) | Bridge (priorité) | Tizen systeminfo |
| LG webOS | idcap network | Capacitor | Capacitor | APIs natives |
| Android | Identifier | Capacitor | Capacitor | Device.getInfo() |
| Philips | Identifier | Capacitor | Capacitor | Device.getInfo() |
| Chromecast | whoami | Capacitor | Capacitor | Service whoami |
Gestion d'Erreurs ​
Toutes les méthodes :
- Capturent les exceptions et retournent des valeurs par défaut
- Loguent les erreurs avec des niveaux appropriés
- Fournissent des fallbacks pour maintenir la stabilité
Performance ​
- Mise en cache : Les informations sont récupérées à la demande
- Timeout : 5 secondes maximum par appel bridge
- Lazy loading : Import dynamique des modules spécifiques
Utilisation Avancée ​
Récupération Parallèle ​
typescript
const dashboard = await TVDashboard.init(deviceTypology);
// Récupération simultanée pour de meilleures performances
const [mac, manufacturer, model] = await Promise.all([
dashboard.getMacAddress(),
dashboard.getManufacturer(),
dashboard.getModel()
]);
console.log('Device Info:', { mac, manufacturer, model });Gestion d'Erreurs ​
typescript
try {
const mac = await dashboard.getMacAddress();
if (mac === 'unknown') {
console.warn('MAC address unavailable');
}
} catch (error) {
console.error('Failed to get device info:', error);
}Compatibilité ​
- Samsung : Tizen 6.5+ requis pour les APIs bridge
- LG : webOS 4.0+ avec idcap support
- Android : Capacitor Device plugin disponible
- Chromecast : whoami service accessible
Tests ​
Voir les tests unitaires dans src/lib/classes/platforms/ pour les exemples de mocks et assertions.
Extension ​
Pour ajouter le support d'une nouvelle plateforme :
- Créer une classe implémentant
TVDashboard.DeviceInfoRetriever - L'ajouter au
DeviceInfoRetrieverFactory - Tester avec les appareils physiques
Concept ​
L'API Device Info permet de récupérer les informations matérielles des appareils TV (MAC, fabricant, modèle) avec un système de fallback automatique selon la plateforme pour assurer la compatibilité.
Fonctionnement ​
Méthodes disponibles avec implémentations par plateforme : utilisation du bridge unifié pour la communication iframe, fallbacks Capacitor, gestion d'erreurs et mise en cache.
Diagrammes ​
e-novatis
Date de dernière mise à jour : date inconnue