Skip to content

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 :

  1. Essaie d'abord la communication iframe avec l'hĂ´te (pour Samsung)
  2. 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 ​

PlateformegetMacAddressgetManufacturergetModelSource
Samsung HG+Bridge (priorité)Bridge (priorité)Bridge (priorité)Tizen systeminfo
LG webOSidcap networkCapacitorCapacitorAPIs natives
AndroidIdentifierCapacitorCapacitorDevice.getInfo()
PhilipsIdentifierCapacitorCapacitorDevice.getInfo()
ChromecastwhoamiCapacitorCapacitorService 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 :

  1. Créer une classe implémentant TVDashboard.DeviceInfoRetriever
  2. L'ajouter au DeviceInfoRetrieverFactory
  3. 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