如何在chrome app开发中枚举连接的USB和Wi-Fi设备

时间:2014-06-13 11:26:54

标签: javascript html google-chrome-app

附加示例代码

的manifest.json

 {
  "manifest_version": 2,
  "name": "Devices",
  "version": "0.1",
  "minimum_chrome_version": "26",
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
 "permissions": [
 "usb",
    {"usbDevices": [
      {
        "vendorId": 1234,
        "productId": 145
      }
    ]}
  ]
}

background.js

chrome.app.runtime.onLaunched.addListener(function(launchData) {
  chrome.app.window.create('index.html', {id:"fileWin", bounds: {width: 800, height: 500}}, function(win) {
    win.contentWindow.launchData = launchData;
  });
});

的index.html

<html>
    <head>
        <title> Devices</title>

        <style>
            button {
                    display: inline-block;
                    background: -webkit-linear-gradient(#F9F9F9 40%, #E3E3E3 70%);
                    background: linear-gradient(#F9F9F9 40%, #E3E3E3 70%);
                    border: 1px solid #999;
                    -webkit-border-radius: 3px;
                    border-radius: 3px;
                    padding: 5px 8px;
                    outline: none;
                    white-space: nowrap;
                    -webkit-user-select: none;
                    user-select: none;
                    cursor: pointer;
                    text-shadow: 1px 1px #fff;
                    font-weight: 700;
                    font-size: 10pt;
                }
            button:not(:disabled):hover {
                    border-color: black;
                }
            button:not(:disabled):active {
                    background: -webkit-linear-gradient(#E3E3E3 40%, #F9F9F9 70%);
                    background: linear-gradient(#E3E3E3 40%, #F9F9F9 70%);
                }
        </style>    
    </head>
    <body>
        <p>Devices<br><br>
            <nav>
                    <button id="usb_dev" onclick="GetUsbDevices()">USB</button>
                    <button id="wifi_dev" ">Wi-Fi</button>
            </nav>
        </p
        <script src="script.js"></script>
    </body>
</html>

的script.js

function GetUsbDevices() 
{
    //alert('Clicked USB Device Button');
   console.log("Device could not be found");

}

我正在尝试将连接的设备显示到应用程序窗口。由于我是这个开发中的新手,没有成功。

请事先帮助谢谢,Sarath s

1 个答案:

答案 0 :(得分:2)

我相信你的两项任务都无法实现(无论如何都没有Native Host。)

  1. 出于安全考虑,明确禁止USB枚举,我概述了here

      

    这说明的原因是通过枚举所有连接的USB设备来防止应用程序指纹硬件,这些设备很有可能成为一个独特的设备。

  2. 目前还不清楚你的意思是什么?&#34; WiFi设备&#34 ;;您可以使用chrome.system.network API枚举网络接口,但网络上的任何类型的设备发现都将高度依赖于您的意思。

    您无法枚举WiFi网络,您必须实施自己的特定服务发现(只要可以使用chrome.socket.tcp / chrome.socket.udp)。