[問題] 藍牙建立連線卡關了

看板AndroidDev作者 (mozzan)時間12年前 (2013/06/08 12:16), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
大家好,我現在在寫藍牙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
耍笨了,沒加Action_request_discoverable intent
06/08 15:08, 1F

06/08 15:08, , 2F
只剩辨識為藍牙耳機這個問題了,感謝
06/08 15:08, 2F
文章代碼(AID): #1Hih0kcD (AndroidDev)