資源簡介
藍牙連接部分的核心代碼,解決Android手機和單片機連接的一些問題。

代碼片段和文件信息
package?com.ostd.eoiot.bluetooth;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.OutputStream;
import?java.io.PrintWriter;
import?java.lang.reflect.InvocationTargetException;
import?java.lang.reflect.Method;
import?java.util.Iterator;
import?java.util.Set;
import?android.annotation.SuppressLint;
import?android.bluetooth.BluetoothAdapter;
import?android.bluetooth.BluetoothDevice;
import?android.bluetooth.BluetoothSocket;
import?android.os.Handler;
import?android.os.Message;
public?class?BlueToothClient?extends?Thread?{
private?boolean?isConnecting?=?true;
private?BluetoothAdapter?mBluetoothAdapter?=?null;
private?BluetoothDevice?mmDevice?=?null;
private?Method?M?=?null;
?private?BluetoothSocket?btSocket?=?null;
????private?InputStream?instream?=?null;
private?static?OutputStream?outstream?=?null;
static?BufferedReader?mBufferedReaderClient =?null;
static?PrintWriter?mPrintWriterClient?=?null;
private?static?String?address?;
private?static?Handler?serviceHandler;?//?用于向客戶端Service回傳消息的handler
public?BlueToothClient(Handler?handler)?{
this.serviceHandler?=?handler;
}
@SuppressLint(“NewApi“)
public?void?run()
{
mBluetoothAdapter?=?BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter?==?null)//判斷設備是否有藍牙
{
????????????return;
}
if(!mBluetoothAdapter.isEnabled())//判斷藍牙是否打開
{
//?藍牙設備沒打開
???????????serviceHandler.obtainMessage(BluetoothTools.Bluetooth_Closed)
.sendToTarget();
}
// mBluetoothAdapter.startDiscovery();
//
Set?devices?
=?mBluetoothAdapter.getBondedDevices();
????????if(devices.size()>0)
????????{
???????? for(Iterator?iterator?=?devices.iterator();?iterator.hasNext();)
???????? {
???????? BluetoothDevice?bbDevice?=?(BluetoothDevice)iterator.next();
???????? address?=?bbDevice.getAddress();
???????? }
????????}
try?{
???????? ?????mmDevice?=?mBluetoothAdapter.getRemoteDevice(address);
??????????????????//btSocket?=?mmDevice.createRfcommSocketToServiceRecord(MY_UUID);
??????????????????M?=?mmDevice.getClass().getMethod(“createRfcommSocket“?new?Class[]{int.class});
??????????????????btSocket?=?(BluetoothSocket)M.invoke(mmDevice?1);
?????????}?catch?(IllegalArgumentException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(NoSuchMethodException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IllegalAccessException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(InvocationTargetException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
?????????mBluetoothAdapter.cancelDiscovery();
?????????try?
?????????{
?????????????btSocket.connect();
?????????????instream?=?btSocket.getInputStream();
?????????????outstream?=?btSocket.getOutputStream();
?????????????
??????????//?發送連接成功消息,消息的obj參數為連接的
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5642??2014-05-21?09:12??BlueToothClient.java
-----------?---------??----------?-----??----
?????????????????5642????????????????????1
- 上一篇:java個人簡歷
- 下一篇:java SM4加密demo
評論
共有 條評論