[問題] 藍牙建立連線卡關了
大家好,我現在在寫藍牙APP
最後是要做到可以互傳資料
但目前卡在連線階段= =++,非BlutoothChat範例
平台是兩隻Android 手機,假設A是Client,B是Server(但都是同一支APP)
目前APP 可以與android 內建的藍牙功能連線
(不過有時B會認為A發出的連線是藍牙耳機,這是另一個問題== 我是用SPP)
現在要做兩隻手機都進到APP當中,然後連線
而現在Client端始終無法Find Server裝置
看起來就像是(在Android內建藍牙程式中沒有點"向其他裝置顯示"那樣)
不曉得是不是我server 端的部分寫錯
請各位大大幫我看一下,感激不盡
Connect 的部分:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "in onReceive, action = " + action);
if (BluetoothDevice.ACTION_FOUND.equals(intent.getAction())) {
// 取得藍芽裝置這個物件
BluetoothDevice device =
intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// 判斷那個裝置是不是你要連結的裝置,根據藍芽裝置名稱判斷
try {
// 一進來一定要停止搜尋
BT.cancelDiscovery();
// 連結到該裝置
mBluetoothSocket =
(BluetoothSocket)device.createRfcommSocketToServiceRecord (MY_UUID);
Method m = device.getClass().getMethod
("createRfcommSocket", new Class[] {int.class}); // add
mBluetoothSocket = (BluetoothSocket) m.invoke
(device, 1); //add
mBluetoothSocket.connect();
.......
在來是Server 監聽連線的部分
OnClickListener serverButtonHandler = new OnClickListener() {
@Override
public void onClick(View v) {
try {
mBluetoothServerSocket =
BT.listenUsingRfcommWithServiceRecord("BluetoothTest", MY_UUID);
} catch (Exception e) {
Log.d(TAG, "listen() failed" + e);
}
Thread listenThread = new Thread(new Runnable() {
public void run() {
try {
mBluetoothSocket = mBluetoothServerSocket.accept();
} catch (Exception e) {
Log.d(TAG, "accept failed" + e);
}
}
});
listenThread.start();
}
};
UUID : "fa87c0d0-afac-11de-8a39-0800200c9a66"
先謝謝了!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.168.92.186
→
06/08 15:08, , 1F
06/08 15:08, 1F
→
06/08 15:08, , 2F
06/08 15:08, 2F