Android Bluetooth Connection Example: Connect, Send, and Receive Data in Java
public class MainActivity extends AppCompatActivity implements EventObserver {\nprivate Connection connection; \n\n@Override \nprotected void onCreate(Bundle savedInstanceState) { \n\tsuper.onCreate(savedInstanceState); \n\tsetContentView(R.layout.activity_main); \n\tBluetoothDevice device = getIntent().getParcelableExtra("device"); \n\tif (device == null) { \n\t\tfinish(); \n\t\treturn; \n\t} \n\tconnection = BTManager.getInstance().createConnection(device, UUIDWrapper.useDefault(), this); \n\tif (connection == null) { \n\t\tfinish(); \n\t\treturn; \n\t} \n\tconnection.connect(new ConnectCallback() { \n\t\t@Override \n\t\tpublic void onSuccess() { \n\t\t\n\t\t} \n\t\t@Override \n\t\tpublic void onFail(String errMsg, Throwable e) { \n\t\t\trunOnUiThread(new Runnable() { \n\t\t\t\t@Override \n\t\t\t\tpublic void run() { \n\t\t\t\t\ttvLog.append("连接失败\n"); \n\t\t\t\t} \n\t\t\t}); \n\t\t} \n\t}); \n\tbtnSend.setOnClickListener(new View.OnClickListener() { \n\t\t@Override \n\t\tpublic void onClick(View v) { \n\t\t\tif (connection != null && connection.isConnected()) { \n\t\t\t\tif (etMsg.getText() != null && !etMsg.getText().toString().isEmpty()) { \n\t\t\t\t\tconnection.write(null, etMsg.getText().toString().getBytes(), null); \n\t\t\t\t} \n\t\t\t} else { \n\t\t\t\tToastUtils.showShort("未连接"); \n\t\t\t} \n\t\t} \n\t}); \n} \n\n@RunOn(ThreadMode.MAIN) \n@Override \npublic void onRead(BluetoothDevice device, UUIDWrapper warpper, byte[] value) { \n\ttvLog.append(new String(value) + "\n"); \n} \n\n@Override \npublic void onWrite(BluetoothDevice device, UUIDWrapper warpper, String tag, byte[] value, boolean result) { \n\n} \n\n@RunOn(ThreadMode.MAIN) \n@Override \npublic void onConnectionStateChanged(BluetoothDevice device, UUIDWrapper warpper, int state) { \n\tString msg = ""; \n\tswitch (state) { \n\t\tcase Connection.STATE_PAIRING: \n\t\t\tmsg = "配对中..."; \n\t\t\tbreak; \n\t\tcase Connection.STATE_PAIRED: \n\t\t\tmsg = "配对成功"; \n\t\t\tbreak; \n\t\tcase Connection.STATE_CONNECTED: \n\t\t\tmsg = "连接成功"; \n\t\t\tbreak; \n\t\tcase Connection.STATE_DISCONNECTED: \n\t\t\tmsg = "连接断开"; \n\t\t\tbreak; \n\t\tcase Connection.STATE_RELEASED: \n\t\t\tmsg = "连接已销毁"; \n\t\t\tbreak; \n\t\tdefault: \n\t\t\tbreak; \n\t} \n\tif (!msg.isEmpty()) { \n\t\ttvLog.append(msg + "\n"); \n\t} \n} \n\n@Override \nprotected void onDestroy() { \n\tconnection.release(); \n\tsuper.onDestroy(); \n} \n}
原文地址: https://www.cveoy.top/t/topic/pnGE 著作权归作者所有。请勿转载和采集!