蓝牙连接
public void startConnect(){
if (BluetoothManager.newInstance().getBluetoothAdapter().isDiscovering()){
BluetoothManager.newInstance().getBluetoothAdapter().cancelDiscovery();
}
new ConnectAsyncTask().execute(device);
}
/**
* 蓝牙连接
*/
public class ConnectAsyncTask extends AsyncTask<BluetoothDevice,Integer,BluetoothSocket>{
@Override
protected BluetoothSocket doInBackground(BluetoothDevice... bluetoothDevices) {
BluetoothDevice d = bluetoothDevices[0];
try {
socket = d.createRfcommSocketToServiceRecord(UUID.fromString(SPP_UUID));
if (socket != null && !socket.isConnected()){
socket.connect();
}
return socket;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(BluetoothSocket bluetoothSocket) {
super.onPostExecute(bluetoothSocket);
if (bluetoothSocket != null && bluetoothSocket.isConnected()){
Log.v("=====connect=====","连接成功!");
}else {
Log.v("=====connect=====","连接失败!");
}
}
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.v("=====connect=====","开始连接");
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
Log.v("=====connect=====","连接中"+values);
}
}
取消连接
/**
* 断开连接
*
*
* @return
*/
public boolean cancelConnect(){
if (socket != null && socket.isConnected()){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
socket = null;
return true;
}
读取 蓝牙连接通信数据
/**
*
* 读取 蓝牙连接通信数据
*
*/
public class ReadSockeTask extends AsyncTask<BluetoothSocket,Void,String>{
@Override
protected String doInBackground(BluetoothSocket... bluetoothSockets) {
BluetoothSocket s = bluetoothSockets[0];
try {
BufferedInputStream in = new BufferedInputStream(s.getInputStream());
byte[] bytes=new byte[1024];
int len;
String result;
while ((len=in.read()) != -1){
in.read(bytes,0,len);
}
result = new String(bytes);
in.close();
return result ;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.v("=====read=====",""+s);
}
}
写入 蓝牙连接通信数据
public class WriteSockeTask extends AsyncTask<BluetoothSocket,Void, Boolean>{
String str;
public WriteSockeTask(String str){
this.str = str ;
}
@Override
protected Boolean doInBackground(BluetoothSocket... bluetoothSockets) {
BluetoothSocket s = bluetoothSockets[0];
try {
BufferedOutputStream out = new BufferedOutputStream(s.getOutputStream());
out.write(str.getBytes());
out.close();
return true ;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
if (aBoolean){
//上传成功
Log.v("=====写入=====","成功");
}else {
//
Log.v("=====写入=====","失败");
}
}
}