Why I get an undefined object when I use chrome.bl

2019-05-28 18:05发布

问题:

I'm using Google Chrome 33.0.1729.3 dev on Linux (elementary os 0.2 based on Ubuntu 12.04)

I create a Chrome App and configured the manifest.json to grant bluetooth permissions:

{
  "name": "App Name",
  "description": "App Desc",
  "version": "0.1.0",
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "permissions": ["bluetooth"],
  "icons": { "16": "app-icon-16.png", "128": "app-icon-128.png" }
}

when I trigger this script on the app

chrome.bluetooth.getAdapterState( function( result ) {
  console.log( result );
});

The result is an undefined

According to the documentation of Google Chrome Apps the method returns an AdapterState object to the callback.

What I'm doing wrong?

回答1:

Try this:

chrome.bluetooth.getAdapterState( function( result ) {
  if (result) {
    console.log(result);
  } else {
    console.log(chrome.runtime.lastError);
  }
});

Many of the chrome.* APIs use chrome.runtime.lastError to communicate errors to you. Even though it's not documented at http://developer.chrome.com/apps/bluetooth.html, it might work in this case.