2017-03-26 37 views
10

Androidのタブレットに接続されたBluetoothデバイスと通信することを検討しています。 Termuxを使用し、NodeJSをインストールしています。誰かが、Bluetoothデバイスと通信することさえ可能かどうかを知っていますか?/devフォルダから直接デバイスと通信する必要がありますか?NodeJSとTermux経由でAndroidのBluetoothデバイスと通信する

AndroidはLinuxカーネルの上に構築されていると私は理解していますが、接続のような他のものと対話するために、Androidカーネルの上に特定の機能を実装しています。デバイスはNodejSの "serialport"や他のツールを介して/ devフォルダからアクセスできるでしょうか?

最後の手段として、これが不可能な場合は、根っこの端末を介してAndroid OSにNodeJSを構築しようとする可能性があります。私はこれが思っているほど簡単ではないと聞いてきました。 Termuxを通して私は/ devフォルダにアクセスし、すべてのデバイスを見ることができます。どのように権限が動作するかわからない。ありがとう。

enter image description here

答えて

1

あなたは、このツールを使用して、シリアルポートを介して通信することができます。私はこのツールを使用したことはありませんが、これはリファレンスとしてのみ提供しています。アンドロイドはこれがうまくいくかもしれないLinuxカーネル上に構築されているからです。例はドキュメントと同じです。 (のみLinux上)

https://github.com/eelcocramer/node-bluetooth-serial-port

Basicクライアントの使用

var btSerial = new (require('bluetooth-serial-port')).BluetoothSerialPort(); 

btSerial.on('found', function(address, name) { 
    btSerial.findSerialPortChannel(address, function(channel) { 
     btSerial.connect(address, channel, function() { 
      console.log('connected'); 

      btSerial.write(new Buffer('my data', 'utf-8'), function(err, bytesWritten) { 
       if (err) console.log(err); 
      }); 

      btSerial.on('data', function(buffer) { 
       console.log(buffer.toString('utf-8')); 
      }); 
     }, function() { 
      console.log('cannot connect'); 
     }); 

     // close the connection when you're ready 
     btSerial.close(); 
    }, function() { 
     console.log('found nothing'); 
    }); 
}); 

btSerial.inquire(); 

基本的なサーバーの使用状況

var server = new(require('bluetooth-serial-port')).BluetoothSerialPortServer(); 

var CHANNEL = 10; // My service channel. Defaults to 1 if omitted. 
var UUID = '38e851bc-7144-44b4-9cd8-80549c6f2912'; // My own service UUID. Defaults to '1101' if omitted 

server.listen(function (clientAddress) { 
    console.log('Client: ' + clientAddress + ' connected!'); 
    server.on('data', function(buffer) { 
     console.log('Received data from client: ' + buffer); 

     // ... 

     console.log('Sending data to the client'); 
     server.write(new Buffer('...'), function (err, bytesWritten) { 
      if (err) { 
       console.log('Error!'); 
      } else { 
       console.log('Send ' + bytesWritten + ' to the client!'); 
      } 
     }); 
    }); 
}, function(error){ 
    console.error("Something wrong happened!:" + error); 
}, {uuid: UUID, channel: CHANNEL}); 
+1

だけ答えとしていくつかのツールやライブラリへのリンクを投稿しないでください。少なくとも、その問題を解決する方法(http://meta.stackoverflow.com/a/251605)を解答そのものに示してください。 –

関連する問題