低消費電力Bluetooth(BLE)パッケージとその使用方法

6260 ワード

ソースコードはしばらくオープンしないで、aarを必要として以下のコメントを歓迎します
Bluetooth 4.0 SDKの使い方
一、関連権限の申請




二、ブルートゥースの初期化
BluetoothUtil.setDEBUG(true);//      
BluetoothUtil.init(this);//   

三、ブルートゥースを開く
BluetoothUtil.openBluetooth(this);//    

四、ブルートゥース操作オブジェクトの作成
    //           
   BluetoothOptions bluetoothOptions = new BluetoothOptions.Builder()
            //        
            .setCacheEnable("your key", true)
            //             
            .setFilterNullName(true)
            //    
            .build();   
    //    
    bluetoothManager = FastBluetoothManager.getInstance();
    //     
    bluetoothManager.initBluetooth(bluetoothOptions);
    //        ,    ,            ,SP    
    bluetoothManager.addDeviceCache(new DemoDeviceCache());

五、コールバックの設定
 bluetoothManager.setBluetoothCallback(new BluetoothCallback() {
            @Override
            public void connect(BluetoothDevice bluetoothDevice) {
                super.connect(bluetoothDevice);
                result.append("
"); result.append(" "); } @Override public void disconnect() { super.disconnect(); result.append("
"); result.append(" "); } @Override public void deviceFound(BluetoothDevice bluetoothDevice) { super.deviceFound(bluetoothDevice); result.setText(bluetoothDevice.getName()); } } @Override public void onStartServicesDiscovered() { super.onStartServicesDiscovered(); List bluetoothServices = bluetoothManager.getBluetoothServices(null); for (BluetoothGattService bluetoothService : bluetoothServices) { result.append("
"); result.append("
"); result.append("=========== ============="); result.append("
"); String uuid = bluetoothService.getUuid().toString(); result.append(uuid); result.append("
"); result.append("=========== ============="); List bluetoothCharacteristics = bluetoothManager.getBluetoothCharacteristic(uuid); for (BluetoothGattCharacteristic bluetoothCharacteristic : bluetoothCharacteristics) { result.append("
"); result.append(bluetoothCharacteristic.getUuid().toString()); result.append("
"); } result.append("===========END============="); result.append("
"); result.append("
"); } } @Override public void onStartCharacteristicChanged(BluetoothDevice device, byte[] buff) { super.onStartCharacteristicChanged(device, buff); } });

六、ブルートゥースの切断(または破棄)
    BluetoothUtil.closeBluetooth();//    ,   onDestroy   
    bluetoothManager.destroy();//       ,   onDestroy   

七、ブルートゥース操作
/**
 *       
 */
void startScanning();

/**
 *       
 */
void stopScanning();
 /**
 *     
 *
 * @param bluetoothDevice
 * @param isAutoConnected
 */
void startConnect(Context context, BluetoothDevice bluetoothDevice, boolean isAutoConnected);

/**
 *     
 *
 * @param address
 * @param isAutoConnected
 */
void startConnect(Context context, String address, boolean isAutoConnected);

/**
 *     
 */
void disconnect();

/**
 *          
 */
void discoverServicesAndCharacteristic();

/**
 *              
 *
 * @param ch
 * @param enable
 */
void setNotificationForCharacteristic(BluetoothGattCharacteristic ch, boolean enable);

/**
 *         
 *    byte  
 *      7e 14
 * byte[] = {0x7e,0x14}
 * @param characteristic
 * @param dataToWrite
 */
void writeDataToCharacteristic(BluetoothGattCharacteristic characteristic, byte[] dataToWrite);

/**
 *          
 * @param characteristic
 */
void readDataFromCharacteristic(BluetoothGattCharacteristic characteristic);
/**
 *     
 *
 * @param serviceUUID
 * @return
 */
public List getBluetoothServices(String... serviceUUID);

/**
 *               
 *
 * @param serviceUUID
 * @param characteristics
 * @return
 */
public List getBluetoothCharacteristic(String serviceUUID, String... characteristics);

/**
 *            
 */
@Override
void destroy();

八、ブルートゥースコールバック
  /**
 *     
 *
 * @param bluetoothDevice
 */
@Override
public void connect(BluetoothDevice bluetoothDevice) {

}

/**
 *     
 */
@Override
public void disconnect() {

}

/**
 *     
 *
 * @param bluetoothDevice
 */
@Override
public void deviceFound(BluetoothDevice bluetoothDevice) {

}

/**
 *            
 */
@Override
public void onStartServicesDiscovered() {

}

/**
 *          
 *
 * @param buff
 */
@Override
public void onStartCharacteristicRead(byte[] buff) {

}

/**
 *          
 *
 * @param buff
 */
@Override
public void onStartCharacteristicWrite(byte[] buff) {

}

/**
 *           (     )
 *
 * @param device
 * @param buff
 */
@Override
public void onStartCharacteristicChanged(BluetoothDevice device, byte[] buff) {

}

九、注意事項
1.ブルートゥース操作オブジェクト(FastBluetoothManager)初期化が完了すると、直ちにスキャンを開始しスキャンできない場合があり、スキャンを遅らせる必要がある.2.Bluetooth権限と位置決め位置権限は申請に成功しなければならない.そうしないと、Bluetooth機能を使用できない.3.資源の回収に注意し、メモリの漏洩を防止する.