求助
package myapplication.com.myapplicationble; import android.app.Service; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothServerSocket; import android.bluetooth.BluetoothSocket; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.PopupMenu; import android.widget.PopupWindow; import android.widget.TextView; import android.widget.Toast; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.UUID; public class MainActivity extends AppCompatActivity { private BluetoothAdapter BA; BluetoothServerSocket mmServerSocket; private static String address = "20:16:09:26:81:80"; // <==应填写蓝牙串口模块的蓝牙地址。 private BluetoothSocket btSocket = null; private OutputStream outStream = null; public InputStream inStream = null; EditText editText; TextView textView; Button button, button1; private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } /** * 连接蓝牙 * **/ public void connect() { BA = BluetoothAdapter.getDefaultAdapter(); BluetoothDevice device = BA.getRemoteDevice(address); // pairedDevices = BA.getBondedDevices(); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); new ReceiveDatas(btSocket).start(); } catch (IOException e) { } BA.cancelDiscovery(); try { btSocket.connect(); String s="sm\n"; outStream = btSocket.getOutputStream(); outStream.write(s.getBytes()); //outStream.write(0x41); inStream = btSocket.getInputStream(); Jieshou(); // System.out.println("**" + inStream.toString()); // System.out.println("**" + inStream.read()); // int x = inStream.read(); //outStream.write(x+1); // System.out.println("****--"+x); } catch (IOException e) { } try { // btSocket.close(); } catch (Exception e2) { // Log .e(TAG,"ON RESUME: Unable to close socket during connection failure", e2); } } public void initView() { editText = (EditText) findViewById(R.id.edit); textView = (TextView) findViewById(R.id.textView); button = (Button) findViewById(R.id.button); button1 = (Button) findViewById(R.id.button1); BA = BluetoothAdapter.getDefaultAdapter(); /** * 连接蓝牙 * */ button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("***11"); as(); } }); /** * 发送信息 * **/ button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = editText.getText().toString().trim(); try { outStream = btSocket.getOutputStream(); inStream=btSocket.getInputStream(); outStream.write(s.getBytes()); } catch (IOException e) { e.printStackTrace(); } } }); } /** * * 连接蓝牙 * **/ public void as() { new AsyncTask() { @Override protected String doInBackground(Object[] params) { connect(); return null; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show(); } }.execute(); } /** * 接受数据 在用,但是接受只输出一次 * */ public void Jieshou() { new Thread(new Runnable() { @Override public void run() { while(true){ ByteArrayOutputStream byteArrayOutputStream=null; byteArrayOutputStream = new ByteArrayOutputStream(); try { inStream=btSocket.getInputStream(); } catch (IOException e) { e.printStackTrace(); } byte[] buffer = new byte[1024];// 缓冲数据流 int temp = 0; // while( (temp = inStream.read(buffer)) != -1) { // os.write(buffer, 0, temp); byteArrayOutputStream.write(buffer, 0, temp); // } System.out.println("*shuju*"+byteArrayOutputStream.toByteArray().toString()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } }
1.这里可以发送信息到蓝牙了,但是怎么接受信息?求助啊
同样的办法,从Bluetoothdevice中创建BluetoothSocket出来,然后过去inputstream就可以了