Форум для тех, кто программирует под Android
Anonymous
Подключение клиентского сервера Android Bluetooth
Сообщение
Anonymous » 01 дек 2025, 11:04
Я хочу создать простую клиент-серверную программу Bluetooth для Android
Код сервера:
Код: Выделить всё
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1=(TextView)findViewById(R.id.textView1);
tv2=(TextView)findViewById(R.id.textView2);
mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
try {
mBluetoothServerSocket=mBluetoothAdapter.listenUsingRfcommWithServiceRecord(name,uUID);
mBluetoothAdapter.cancelDiscovery();
mBluetoothSocket=mBluetoothServerSocket.accept();
mInputStream=mBluetoothSocket.getInputStream();
//if(mInputStream.available()>0){
mBufferedReader=new BufferedReader(new InputStreamReader(mInputStream));
data = mBufferedReader.readLine();
tv1.setText(data);
//}
if(mInputStream.available()>0){
data=mBufferedReader.readLine();
tv2.setText(data);
x++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Код клиента:
Код: Выделить всё
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lb=(Button)findViewById(R.id.button1);
btAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothDevice device = btAdapter.getRemoteDevice(addressHTC);
try {
btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
btAdapter.cancelDiscovery();
btSocket.connect();
String message = "Hello.............. from....... Android......\n";
outStream = btSocket.getOutputStream();
byte[] msgBuffer = message.getBytes();
outStream.write(msgBuffer);
}
catch(IOException e){
e.printStackTrace();
}
lb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String m1="msg 2";
byte[] msgBuffer = m1.getBytes();
try {
outStream.write(msgBuffer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
Это приложение работает в одностороннем режиме, просто отправляет сообщение на сервер и показывает полученный буфер, но мне нужно постоянно отправлять обратно некоторые сообщения с сервера клиенту.
Как это сделать?
если у вас есть идеи. пожалуйста, поделитесь.
Подробнее здесь:
https://stackoverflow.com/questions/192 ... connection
1764576285
Anonymous
Я хочу создать простую клиент-серверную программу Bluetooth для Android [b]Код сервера:[/b] [code]protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1=(TextView)findViewById(R.id.textView1); tv2=(TextView)findViewById(R.id.textView2); mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter(); try { mBluetoothServerSocket=mBluetoothAdapter.listenUsingRfcommWithServiceRecord(name,uUID); mBluetoothAdapter.cancelDiscovery(); mBluetoothSocket=mBluetoothServerSocket.accept(); mInputStream=mBluetoothSocket.getInputStream(); //if(mInputStream.available()>0){ mBufferedReader=new BufferedReader(new InputStreamReader(mInputStream)); data = mBufferedReader.readLine(); tv1.setText(data); //} if(mInputStream.available()>0){ data=mBufferedReader.readLine(); tv2.setText(data); x++; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } [/code] [b]Код клиента:[/b] [code]protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lb=(Button)findViewById(R.id.button1); btAdapter = BluetoothAdapter.getDefaultAdapter(); BluetoothDevice device = btAdapter.getRemoteDevice(addressHTC); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); btAdapter.cancelDiscovery(); btSocket.connect(); String message = "Hello.............. from....... Android......\n"; outStream = btSocket.getOutputStream(); byte[] msgBuffer = message.getBytes(); outStream.write(msgBuffer); } catch(IOException e){ e.printStackTrace(); } lb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String m1="msg 2"; byte[] msgBuffer = m1.getBytes(); try { outStream.write(msgBuffer); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } [/code] Это приложение работает в одностороннем режиме, просто отправляет сообщение на сервер и показывает полученный буфер, но мне нужно постоянно отправлять обратно некоторые сообщения с сервера клиенту. Как это сделать? если у вас есть идеи. пожалуйста, поделитесь. Подробнее здесь: [url]https://stackoverflow.com/questions/19222770/android-bluetooth-client-server-connection[/url]