ScanCallback.java revision 8e5270fdf5639461d67e9a898a85520abac6053d
16d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang/* 26d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Copyright (C) 2014 The Android Open Source Project 36d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 46d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Licensed under the Apache License, Version 2.0 (the "License"); 56d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * you may not use this file except in compliance with the License. 66d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * You may obtain a copy of the License at 76d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 86d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * http://www.apache.org/licenses/LICENSE-2.0 96d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 106d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Unless required by applicable law or agreed to in writing, software 116d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * distributed under the License is distributed on an "AS IS" BASIS, 126d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * See the License for the specific language governing permissions and 146d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * limitations under the License. 156d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 166d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 176d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangpackage android.bluetooth.le; 186d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 196d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangimport java.util.List; 206d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 216d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang/** 226d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback of Bluetooth LE scans. The results of the scans will be delivered through the callbacks. 236d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 246d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangpublic abstract class ScanCallback { 256d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 266d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 276d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Fails to start scan as BLE scan with the same settings is already started by the app. 286d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 296d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public static final int SCAN_FAILED_ALREADY_STARTED = 1; 306d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 316d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Fails to start scan as app cannot be registered. 326d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 336d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED = 2; 346d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 356d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Fails to start scan due to gatt service failure. 366d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 376d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public static final int SCAN_FAILED_GATT_SERVICE_FAILURE = 3; 386d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 396d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Fails to start scan due to controller failure. 406d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 416d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public static final int SCAN_FAILED_CONTROLLER_FAILURE = 4; 426d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 436d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 448e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham * Fails to start power optimized scan as this feature is not supported. 458e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham */ 468e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham public static final int SCAN_FAILED_FEATURE_UNSUPPORTED = 5; 478e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham 488e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham /** 496d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when a BLE advertisement is found. 506d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 516d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param result A Bluetooth LE scan result. 526d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 536d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public abstract void onAdvertisementUpdate(ScanResult result); 546d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 556d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 566d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when the BLE advertisement is found for the first time. 576d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 586d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param result The Bluetooth LE scan result when the onFound event is triggered. 596d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @hide 606d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 616d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public abstract void onAdvertisementFound(ScanResult result); 626d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 636d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 646d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when the BLE advertisement was lost. Note a device has to be "found" before it's 656d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * lost. 666d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 676d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param result The Bluetooth scan result that was last found. 686d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @hide 696d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 706d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public abstract void onAdvertisementLost(ScanResult result); 716d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 726d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 736d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when batch results are delivered. 746d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 756d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param results List of scan results that are previously scanned. 766d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @hide 776d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 786d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public abstract void onBatchScanResults(List<ScanResult> results); 796d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 806d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 816d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when scan failed. 826d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 836d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public abstract void onScanFailed(int errorCode); 846d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang} 85