2
所以即時通訊工作的應用程序,直接連接通過藍牙接受來自RFCOMM通道的字符串命令併發送響應。Android到個人電腦RFCOMM頻道
所以這些都是2類我目前正在與
Bluetooth_Manager
import android.bluetooth.*;
import android.content.Intent;
public class Reader_BluetoothManager {
protected Reader_MainScreen main;
protected BluetoothAdapter bAdapter;
private Reader_AcceptThread bAccept;
public Reader_BluetoothManager(Reader_MainScreen main) {
this.main = main;
initiate();
}
public void initiate(){
checkForBluetooth();
enableBluetooth();
}
public void log(String l){
main.log(l);
}
public void checkForBluetooth(){
bAdapter = BluetoothAdapter.getDefaultAdapter();
if (bAdapter == null) {
main.log("No Bluetooth supported!");
return;
}
main.log("Bluetooth supported...");
}
public void enableBluetooth(){
if (!bAdapter.isEnabled()) {
main.log("Bluetooth not enabled... requesting activation");
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
main.startActivityForResult(enableBtIntent, main.BLUETOOTH_ENABLE_CODE);
}
}
public void enableConnection(){
main.log("Connecting...");
if (bAccept != null)
bAccept.interrupt();
bAccept = new Reader_AcceptThread(this);
bAccept.start();
}
public void stopConnection(){
if (bAccept != null)
bAccept.interrupt();
}
}
而且AcceptThread
import java.io.IOException;
import java.util.UUID;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothServerSocket;
import android.bluetooth.BluetoothSocket;
public class Reader_AcceptThread extends Thread{
private BluetoothServerSocket serverSocket;
private BluetoothSocket socket;
private BluetoothDevice device;
private Reader_BluetoothManager main;
public Reader_AcceptThread(Reader_BluetoothManager main) {
this.main = main;
}
public void run(){
try {
serverSocket = main.bAdapter.listenUsingRfcommWithServiceRecord("XXXXXX", UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
main.log("checkPoint 1");
socket = serverSocket.accept();
main.log("checkPoint 2");
device = socket.getRemoteDevice();
main.log("checkPoint 3");
main.log("connection established...");
main.log(socket.toString());
} catch (IOException e) {
main.log("error...");
main.log(e.toString());
main.main.stopConnection();
interrupt();
}
while (!isInterrupted()){
try {
sleep(2000);
} catch (InterruptedException e) {
interrupt();
break;
}
main.log("ping");
}
}
}
工作,我這些根據谷歌文檔指南構成。 同樣在我的筆記本電腦,我正在做以下幾點:
,這是,什麼是發生在我的電話:
這裏,發生了什麼,當我嘗試從連接我的Windows PC:
正如你可以看到在手機屏幕截圖我卡在socket = serverSocket.accept()
。
好感謝你..我不知道我不得不爲此使用固定的UUID ..我能夠從Windows PC進行連接。我是對的,當我嘗試通過'echo TEXT> COM4'發送消息? –
是的,你可以這樣做,或使用超級終端並通過它連接。不介意也接受答案:) –
想到另一個問題?..我現在有一個COM端口「COM4」從我的電腦到我的手機,但手機仍然卡在'checkPoint1'上。當我嘗試'回顯你好> COM4'的cmd說:「系統找不到那個文件」。我也嘗試通過膩子連接..但膩子放棄與「無法打開連接到COM4,無法打開串行端口」 –