2013-10-23 75 views
2

第一次在這裏發佈海報,所以我很抱歉如果這個問題被問到不正確或有任何問題。Phonegap藍牙插件無效

我正在研究phonegap應用程序,我需要能夠在平板電腦(本例中爲android)和Win CE PC之間建立藍牙連接。 目前我試圖讓藍牙部分在平板電腦上工作,我使用的插件,你可以在https://github.com/tanelih/phonegap-bluetooth-plugin 找到併爲momemt我只是試圖啓用和禁用設備上的藍牙。

以我bluetoothpage.js文件我使用以下方法

window.bluetooth.prototype.enable(bluetoothTestSucces(),bluetoothTestFail());

bluetoothTestSucces和bluetoothTestFail功能只顯示警報,沒有別的。 如果我理解的PhoneGap的工作插件正確這款採用我bluetooth.js下面的代碼文件

Bluetooth.prototype.enable =功能(的onSuccess,onError的)

{ 
    exec(onSuccess, onError, "Bluetooth", "enable", []); 
} 

這就要求

私人無效啓用(JSONArray ARGS,CallbackContext callbackCtx)

{  
    try 
    { 
     _bluetooth.enable(); 
     callbackCtx.success(); 
    } 
    catch(Exception e) 
    { 
     this.error(callbackCtx, e.getMessage(), BluetoothError.ERR_UNKNOWN); 
    } 
} 
我BluetoothPlugin.java文件

如果java文件返回Succes,則使用bluetoothTestSucces(),如果java文件返回錯誤,則使用bluetoothTestFail()。

但由於某種原因,它運行兩個,並沒有打開我的設備上的藍牙。 我幾乎可以肯定,我已經忘記了一個文件的鏈接,或者在某處連接了它。 但我按照插件中包含的說明進行操作。

我已經列入我AndoridManifest文件的藍牙權限位於我的應用程序的根目錄

我已經包括在我的config.xml文件中的插件,它位於RES/XML

我已經在deviceready事件後需要插件如下

document.addEventListener(「deviceready」,onDeviceReady,false);

功能onDeviceReady(){

window.bluetooth = cordova.require("cordova/plugin/bluetooth"); 

}

誰能告訴我如何解決這一問題或我做了什麼錯?

更新1

finaly能夠使用Eclipse做一些調試 我得到了以下錯誤後:遺漏的類型錯誤:無法調用未定義的「啓用」。

更新2

我想我調用的方法錯了,應該已經window.bluetooth.enable而不是window.bluetooth.prototype.enable。 現在我得到以下錯誤;

「藍牙粘合劑爲空」與「BluetoothAdapter」

而且當我在模擬器上運行它,它顯示的標籤只有bluetoothTestFail()函數(這是應該的),但是當我上運行該設備沒有任何反應,沒有函數被調用,也不是藍牙開啓/關閉

更新3

我已經通過Eclipse跑到我的項目作爲我的設備上的應用程序,現在工作得很好,沒有任何問題。 但是,當我使用phonegap將其轉換爲應用程序時,它不再工作。

感謝

的Martijn

PS:我對任何語言錯誤對不起,英語不是我的母語。

編輯:忘了,包括一些代碼

回答

0

你似乎在呼籲通過prototype的方法。如果你看一下附帶bluetooth.js文件,你會發現含線:

var bluetooth = new Bluetooth(); 
module.exports = bluetooth; 

這基本上意味着,該插件「出口」的Bluetooth一個實例,從中可以直接調用的方法。

在你的帖子,你說你也傳遞迴調這樣:

window.bluetooth.prototype.enable(bluetoothTestSucces(),bluetoothTestFail()); 

這意味着,無論是bluetoothTestSuccesbluetoothTestFail函數被調用和其返回值,而不是在傳遞。

嘗試調用這樣的方法,看看它是否工作。

window.bluetooth.enable(bluetoothTestSucces, bluetoothTestFail); 

希望這有助於!

編輯

很高興聽到你得到它至少以某種方式工作。

我不確定將其轉換爲使用PhoneGap的應用程序的意思嗎?我只有通過eclipse自己運行Android項目,所以我不確定是什麼導致了問題。

您可以嘗試使用console.logbluetooth.js文件添加一些基本的調試,以查看插件方法是否被調用。您也可以對Java文件執行相同的操作,以查看是否可以幫助您追蹤罪魁禍首。

希望你得到它的工作。

+0

感謝您的回覆!玩過一些測試功能後,我得出了同樣的結論。現在我得到一個錯誤,說「藍牙聯編程序爲空」,當我在設備上運行它時什麼也沒有發生,但在模擬器上我得到bluetoothTestFail消息。 – user2907333