public class MainActivity extends AppCompatActivity {
private BluetoothAdapter bluetoothAdapter;
private BluetoothGatt gatt;
private BluetoothGattCharacteristic inputCharacteristic;
private TextView outputView;
private EditText inputView;
private static final int REQUEST_ENABLE_BT = 1;
BluetoothAdapter.LeScanCallback leScanCallback;
public void receiveMode(View v) {
bluetoothAdapter.startLeScan(leScanCallback);
}
public void sendMessage(View v) {
inputCharacteristic.setValue(inputView.getText().toString());
gatt.writeCharacteristic(inputCharacteristic);
}
private final BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic) {
if (getString(R.string.outputUUID).equals(characteristic.getUuid().toString())) {
final String value = characteristic.getStringValue(0);
runOnUiThread(new Runnable() {
@Override
public void run() {
outputView.setText(value);
}
});
}
}
@Override
public void onConnectionStateChange(final BluetoothGatt gatt, final int status, final int newState) {
MainActivity.this.gatt = gatt;
if (newState == BluetoothProfile.STATE_CONNECTED) {
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
e.printStackTrace();
}
gatt.discoverServices();
}
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
List<BluetoothGattService> services = gatt.getServices();
for (BluetoothGattService service : services) {
List<BluetoothGattCharacteristic> characteristics = service.getCharacteristics();
for (BluetoothGattCharacteristic characteristic : characteristics) {
if (getString(R.string.outputUUID).equals(characteristic.getUuid().toString())) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
gatt.setCharacteristicNotification(characteristic, true);
BluetoothGattDescriptor descriptor = characteristic.getDescriptors().get(0);
if (descriptor != null) {
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptor);
}
} else if (getString(R.string.inputUUID).equals(characteristic.getUuid().toString())) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
inputCharacteristic = characteristic;
}
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
outputView = (TextView) findViewById(R.id.outputText);
inputView = (EditText) findViewById(R.id.inputText);
final BluetoothManager bluetoothManager =
(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
bluetoothAdapter = bluetoothManager.getAdapter();
if (bluetoothAdapter != null && !bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
}
这是我收到的错误消息:
08-02 11:36:06.470 311 88-31188/uk.ac.york.androidtoiosble d/BluetoothAdapter:startLeScan():null 08-02 11:36:06.470 311 88-31188/uk.ac.york.androidtoiosble e/BluetoothAdapter:startLeScan:null回调
对于初学者,您会得到一个空回调,因为您实际上从未创建过一个。
但是,要回答你的第二个问题
使用替代方法扫描设备?
本文向大家介绍Android实现蓝牙聊天功能,包括了Android实现蓝牙聊天功能的使用技巧和注意事项,需要的朋友参考一下 蓝牙,时下最流行的智能设备传输数据的方式之一,通过手机app和智能设备进行连接,获取设备上的测量数据,我们生活中随处可见的比如蓝牙智能手环,蓝牙电子秤,蓝牙心电测量设备等等。 本篇我将紧接着上篇结尾所写,一起来看下手机之间如何通过蓝牙实现文字聊天。 先贴出上篇的一些demo;
本文向大家介绍Android实现一对一蓝牙聊天APP,包括了Android实现一对一蓝牙聊天APP的使用技巧和注意事项,需要的朋友参考一下 学习了,三天的Android 蓝牙开发,开始是一头雾水,看着别人讲的Google官方的demo感觉很容易,所有自己也尝试写一个很简单的聊天demo.可是想的很简单,自己做起来也花了,将近一天的时间才搞定这个基本的流程设计.下面是几点心得后面再贴代码 1)写一个
我正在写一个蓝牙游戏与蓝牙部分基于Android蓝牙聊天样本。我有两部手机要测试。问题在这里,当我将一部手机连接到另一部手机时,它有时会显示“无法连接设备”捆绑包,但当我运行蓝牙聊天示例时,它从未显示这一点,所以我认为这不是设备的问题。有没有人研究过蓝牙聊天样本,有同样的问题,会给我一些帮助? 我尝试打印异常,它就像“java.io.IOExc0019:服务发现失败”。这是导致异常的代码。 确切位
本文向大家介绍android实现主动连接和被动连接的蓝牙聊天功能,包括了android实现主动连接和被动连接的蓝牙聊天功能的使用技巧和注意事项,需要的朋友参考一下 在项目中经常用到蓝牙的应用,在这里特意写了一个demo。并且封装了代码,可以主动连接和被动连接一起使用,也可以分开使用。方便后面以后查询使用,也重新踩了部分坑。 项目地址:android实现蓝牙聊天功能 1、程序简单的界面 2、客户端,
日期: 2019-11-19 创盛视联数码科技(北京)有限公司 聊天组件的核心类是CCChatManager; //在工程需要的地方引入头文件 #import <CCChatLibrary/CCChatLibrary.h> //1、类的实例化 + (instancetype)sharedChat; //2、与BaseSDK建立联系 - (void)addBasicClient:(CCStrea