我正在嘗試連接到藍牙設備,在將目標設備設定為配對模式時可以配對,但嘗試使用以下方法重新連接會導致錯誤。導致它的代碼:
StreamConnection streamConnection = null;
try {
streamConnection = (StreamConnection)Connector.open("btspp://A0E6F8FECB26:1;authenticate=false;encrypt=false;master=false");
callback.onSocketCreated(streamConnection);
callback.onConnectionSucceed();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
發生的例外
java.io.IOException: Failed to connect. [13] Permission denied
at com.intel.bluetooth.BluetoothStackBlueZ.connectionRfOpenClientConnectionImpl(Native Method)
at com.intel.bluetooth.BluetoothStackBlueZ.connectionRfOpenClientConnection(BluetoothStackBlueZ.java:574)
at com.intel.bluetooth.BluetoothRFCommClientConnection.<init>(BluetoothRFCommClientConnection.java:37)
at com.intel.bluetooth.MicroeditionConnector.openImpl(MicroeditionConnector.java:379)
at com.intel.bluetooth.MicroeditionConnector.open(MicroeditionConnector.java:162)
at javax.microedition.io.Connector.open(Connector.java:83)
at insight.utils.ConnectionEstablisher.run(ConnectionEstablisher.java:170)
我必須使用 Java,這是我找到的唯一一個庫(有點作業)用于此目的:
BlueCove version 2.1.1-SNAPSHOT on bluez
我在 Arch Linux 上使用最新的 bluez 版本,我已經嘗試過此修復程式但無濟于事。
任何幫助表示贊賞
uj5u.com熱心網友回復:
所以本質上,問題在于整個藍牙堆疊/它如何將“配對請求”傳播到藍牙堆疊。
作為旁注,我在 Arch Linux 上使用 BlueZ (5.56) 和 Java 的 bluecove 庫。
我正在尋找替代藍牙堆疊并考慮在不使用 BlueZ 堆疊的 Windows 10 上嘗試相同的代碼。
然后 Windows 彈出一個視窗,詢問我是否要與此設備配對。
這是 Windows 和 Linux 之間的主要區別。Windows / 它的藍牙堆疊或負責它的任何東西,實際上將設備注冊為“配對”。
這讓我可以重新連接到設備,而不會出現任何“權限被拒絕”問題。
希望這可以幫助任何必須處理這個庫或有類似問題的人。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/362414.html
上一篇:編輯System.NullReferenceException時使用DataTable的Datagrid系結:“未將物件參考設定為物件的實體。”
