ここに初めて投稿するので、この質問が間違っている場合、または問題がある場合は申し訳ありません.
私は、タブレット (この場合はアンドロイド) と Win CE PC 間の Bluetooth 接続をセットアップできるようにする必要がある phonegap アプリに取り組んでいます。現在、私は Bluetooth 部分をタブレットで動作させようとしており、https://github.com/tanelih/phonegap-bluetooth-plugin にあるプラグインを使用しています。デバイスで Bluetooth を有効または無効にしようとしています。
私のbluetoothpage.jsファイルでは、次の方法を使用しています
window.bluetooth.prototype.enable(bluetoothTestSucces(),bluetoothTestFail());
bluetoothTestSucces および bluetoothTestFail 関数はアラートを表示するだけで、他には何も表示しません。phonegap プラグインの動作を正しく理解していれば、bluetooth.js ファイルで次のコードを使用します。
Bluetooth.prototype.enable = function(onSuccess, onError)
{
exec(onSuccess, onError, "Bluetooth", "enable", []);
}
呼び出す
private void 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() が使用されます。
しかし、何らかの理由で両方を実行し、デバイスで Bluetooth をオンにしません。ファイルへのリンクを忘れたか、どこかで間違ってリンクしたことはほぼ確実です。しかし、プラグインに含まれていた指示に従いました。
アプリのルート ディレクトリにある AndoridManifest ファイルに Bluetooth のアクセス許可を含めました。
res/xml にある config.xml ファイルにプラグインを含めました。
次のように、deviceready イベントの後にプラグインを要求しました
document.addEventListener("deviceready", onDeviceReady, false);
関数 onDeviceReady() {
window.bluetooth = cordova.require("cordova/plugin/bluetooth");
}
これを修正する方法、または私が間違ったことを誰か教えてもらえますか?
更新 1
最終的にEclipseを使用してデバッグを行うことができるようになった後、次のエラーが発生しました: Uncaught TypeError: Cannot call method 'enable' of undefined.
更新 2
メソッドの呼び出しが間違っていたと思います。window.bluetooth.prototype.enable ではなく、window.bluetooth.enable にするべきでした。次のエラーが表示されます。
「Bluetooth バインダーが null です」タグ「BluetoothAdapter」
また、エミュレーターで実行すると、bluetoothTestFail() 関数のみが表示されますが (これが本来あるべき状態です)、デバイスで実行しても何も起こらず、関数が呼び出されず、Bluetooth のオン/オフも行われません。
アップデート 3
デバイスのアプリとしてEclipseを介してプロジェクトを実行しましたが、問題なく動作します。しかし、phonegap を使用してアプリに変換すると、機能しなくなります。
ありがとう
マルティン
PS: 英語は私の母国語ではありません。
編集:いくつかのコードを含めるのを忘れていました