Android BLE 개발 입문부터 진급까지(둘)
1. 메인 기기 APP 검색, 주변 스마트 기기 검색2.BLE Bluetooth 연결 설정 3.BLE Bluetooth 연결 기반 데이터 통신
첫 번째 단계는 권한을 추가하고 6.0 이상이면 직접 권한을 신청합니다. 메인 장치 안드로이드4.3+(API Level>=18) 두 번째 단계는 블루투스 어댑터 Bluetooth Manager bluetooth Manager = (Bluetooth Manager) this를 획득합니다.getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter mBtAdapter = bluetoothManager.getAdapter();
세 번째 단계에서는 검색을 시작합니다//10초 후 검색을 중지합니다.private static final long SCAN_PERIOD = 10000; mHandler.postDelayed(new Runnable() { @Override public void run() { mBtAdapter .stopLeScan(DeviceScanActivity.this.mLeScanCallback); invalidateOptionsMenu(); } }, SCAN_PERIOD); mBtAdapter .startLeScan(DeviceScanActivity.this.mLeScanCallback); 검색 결과는 이 mLeScanCallback 인터페이스를 통해 반환됩니다.
//UI 인터페이스 private Bluetooth Adapter를 업데이트하기 위해 장치 정보를 검색하여 주 경로로 업데이트합니다.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { runOnUiThread(new Runnable() { @Override public void run() { mLeDeviceListAdapter.addDevice(device); mLeDeviceListAdapter.notifyDataSetChanged(); } }); } };
세 번째 연결(실제 프로젝트에서 개발되고 블루투스의 각종 조작은 서비스에 놓여 편폭이 제한되어 간략하게 쓰여진다) Bluetooth Gatt m Bluetooth Gatt = device.connectGatt(this, false, mGattCallback); 연결 상태는 인터페이스를 통해//GATT 값을 되돌려줍니다. 예를 들어 연결 상태와 서비스의 변경 사항 etc private final Bluetooth Gatt Callback m Gatt Callback = new Bluetooth Gatt Callback () {//연결 상태 변경 @ Override public void on Connection State Change (Bluettooth Gatt gatt, int status, int new State)
if (newState == BluetoothProfile.STATE_CONNECTED) {
//
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
//
}
}
//
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
// service charactertictis
gatt.getServices();
}
//
@Override
public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
// number += 1;
}
}
//
@Override
public void onCharacteristicChanged(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
}
//
@Override
public void onCharacteristicWrite (BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status){
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.