2017-03-25 32 views
0

私はBluetoothデバイス(RN4020)を介してターゲットのマイクロプロセッサー(ARMプロセッサー)ボードと通信するAndroidアプリを開発しています。 ペアのPINはBluetoothモジュールごとにランダムなので、アプリのソースコードでそのRN4020モジュールとアプリケーションを接続したい(ペアのPINがわからないため、手動でペア設定する必要はありません)。 また、RN4020モジュールのUUIDを知りたいだけで、10個以上のUUIDを表示するいくつかのAndroidアプリからUUIDを見つけようとしました。適切なUUIDを選択するのは混乱します。ここでAndroid搭載端末とブルートゥース(RN4020)をプログラム的に接続するにはどうすればよいですか?

が私のコードです:私は、接続ボタンを押すしようとしたとき

private static String address = "00:1E:C0:19:DB:A6"; 
private static final UUID MY_UUID = UUID.fromString("00002A00-0000-1000-8000-00805F9B34FB"); 


    connect.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View V) 
     { 
      Toast.makeText(getApplicationContext(), "Connecting to ...     RN4020_D694", Toast.LENGTH_SHORT).show(); 
      if (mBluetoothAdapter.isEnabled()) 
       Connect(); 
     } 
    }); 


public void Connect() { 

    BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); 
    Toast.makeText(getApplicationContext(), "Connecting to ... " + device, Toast.LENGTH_SHORT).show(); 
    mBluetoothAdapter.cancelDiscovery(); 
    try { 
     btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); 
     btSocket.connect(); 
     Toast.makeText(getApplicationContext(), "Connection made", Toast.LENGTH_SHORT).show(); 
    } catch (IOException e) { 
     try { 
      btSocket.close(); 
     } catch (IOException e2) { 
      changingText.setText("Unable to end the connection"); 
     } 
     Log.d(TAG, "Socket creation failed"); 
    } 

    beginListenForData(); 
} 

、私のアプリは捕まってしまったし、それが応答していません。

答えて

0

ペアリングを避けるには、安全でないUUID rfcommを使用する必要があります。

は置換:

+0

btSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID); 
拝啓と

btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); 

を、上記のコードを交換した後、それは同じままであり、そのハードウェアに接続していません。あなたはいくつかの他のソースコードを提案してください!!!!!! –

+0

上記のコードは、あなたが要求したBluetoothソケットセキュリティでのペアリングのダウングレードを解決します。私はlogcatなしで接続に失敗しているものは何もわかりません。あなたのlogcatを編集して追加して、IOExceptionが捕捉しているものを確認してください。 –

+0

モバイルでアプリを実行しようとすると、NULLが表示されます。 BluetoothDeviceデバイス= mBluetoothAdapter.getRemoteDevice(アドレス); mmDevice =デバイス。 Toast.makeText(getApplicationContext()、 "Connection made" + mmDevice.getName()、Toast.LENGTH_SHORT).show();上記のコードでは、 "Connection madenull"と表示されます。 –

関連する問題