三星智能电视 - 在模拟器中获取设备 ID

Samsung Smart TV -Get Device ID in Emulator

我对 Samsung Smart TV 应用程序完全陌生 Development.Im 试图在应用程序 running.Here 时获取设备序列号(MAC 地址或任何唯一字符串)到目前为止。

    <!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Test2</title>

    <!-- TODO : Common API -->
    <script type="text/javascript" language="javascript" src="$MANAGER_WIDGET/Common/API/Widget.js"></script>
    <script type="text/javascript" language="javascript" src="$MANAGER_WIDGET/Common/API/TVKeyValue.js"></script>


    <!-- TODO : Javascript code -->
    <script language="javascript" type="text/javascript" src="app/javascript/Main.js"></script>

    <!-- TODO : Style sheets code -->
    <link rel="stylesheet" href="app/stylesheets/Main.css" type="text/css">

    <!-- TODO: Plugins -->
    <script type="text/javascript">
    <script>
    function myFunction() {
       var networkPlugin = document.getElementById('pluginNetwork');
       var nnaviPlugin = document.getElementById('pluginObjectNNavi');
       var deviceId = nnaviPlugin.GetDUID(networkPlugin.GetHWaddr());

       document.getElementById('ss').innerHTML = nnaviPlugin;
    }
    </script>

    </script>

</head>

<body onload="lycaload();" bgcolor="#FFF" style="background:#FFF">

fgujhdfughufdghudfhgufghufhgfc
<object id='pluginNetwork' border=0 classid='clsid:SAMSUNG-INFOLINK-  NETWORK'></object>
<object id='pluginObjectNNavi' border=0 classid='clsid:SAMSUNG-INFOLINK-NNAVI'>  </object>
    <!-- Dummy anchor as focus for key events -->
      <a href="javascript:void(0);" id="anchor" onkeydown="Main.keyDown();">   </a>

    <div id="ss">
    </div>
   </body>
 </html>

此应用程序正在 2014 Samsung Smart TV Emulator 5.1 上进行测试,当应用程序 运行 时什么也接收不到。请不要将此标记为重复。我已经关注了以前的 Whosebug post,但没有得到任何运气..

从网络插件中你可以得到 MAC 这样的地址:

var mac = networkPlugin.GetMAC(0) || networkPlugin.GetMAC(1); // wired or wireless MAC address

if (!mac) {
    mac = 0;
}

console.log(String(mac).toUpperCase());

但我建议更好的解决方案是使用播放器的唯一标识符(播放 DRM 内容有唯一 ID)

<object id='EXTERNALWIDGET' border=0 classid='clsid:SAMSUNG-INFOLINK-EXTERNALWIDGETINTERFACE'>  </object>
try {
var externalPlugin= document.getElementById('EXTERNALWIDGET');

console.log(externalPlugin.GetESN("WIDEVINE"));
} catch (e) {
    return false;
}