2016-05-12 5 views
0

私は、アプリケーションの開始時にシリアルBluetoothデバイスへの簡単な接続シーケンスを作ろうとしています。今、このすべては、内部onCreate()です:失敗したBluetoothシーケンス

BT = BluetoothAdapter.getDefaultAdapter(); 

    BT.enable(); 
    if(!BT.isEnabled()) { 
     Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
     startActivityForResult(enabler, REQUEST_ENABLE); 
     BT.enable(); 
     Toast.makeText(getApplicationContext(), "Bluetooth On.", Toast.LENGTH_LONG).show(); 
     //finish apk 
     finish(); 
    } 
    else { 
     Toast.makeText(getApplicationContext(), "Bluetooth On.", Toast.LENGTH_LONG).show(); 
    } 

    pairedDevices = BT.getBondedDevices(); 
    pDevices = new ArrayList<BluetoothDevice>(); 

    if (pairedDevices.size()>0) { 
     for(BluetoothDevice bt : pairedDevices) 
     { 
      pDevices.add(bt); //Get the device's name and the address 
     } 
    } 
    else { 
     Toast.makeText(getApplicationContext(), "Nothing paired.", Toast.LENGTH_LONG).show(); 
    } 

    try { 
     BluetoothDevice dispositivo = BT.getRemoteDevice(pDevices.get(0).getAddress()); 
     btSocket = dispositivo.createInsecureRfcommSocketToServiceRecord(myUUID); 
     btSocket.connect(); 
    } 
    catch (IOException e){ 
     Toast.makeText(getApplicationContext(), "Failed.", Toast.LENGTH_LONG).show(); 
    } 

目標は最初に利用可能なペアリングデバイスに接続することです。これまでのところ、常に「Failed」と表示されます。接続されていないペアのデバイスが電話の隣に座っていても。

私はこのアプリケーションのどこかでこれを行うべきでしょうか?私はこれが個人的なプロジェクトのために主な活動を遅らせることに本当に関わっていません。

編集:スペル

答えて

0

すべてのBT 2.1デバイスと新しいものが安全な接続を必要とし、その代わりにcreateInsecureRfcommSocketToServiceRecordcreateRfcommSocketToServiceRecordを使用しています。

0

私は実際にそれを理解しました...最初のペアの接続に接続しようとしていました。私はtryループをforループに入れました。今すぐ接続します。

関連する問題