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/** 22685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang * Bluetooth LE scan callbacks. Scan results are reported using these callbacks. 23af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang * 24685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang * @see BluetoothLeScanner#startScan 256d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 266d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangpublic abstract class ScanCallback { 276d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 286d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Fails to start scan as BLE scan with the same settings is already started by the app. 296d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 306d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public static final int SCAN_FAILED_ALREADY_STARTED = 1; 31af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang 326d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 336d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Fails to start scan as app cannot be registered. 346d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 356d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang public static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED = 2; 36af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang 376d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 38af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang * Fails to start scan due an internal error 396d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 40af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public static final int SCAN_FAILED_INTERNAL_ERROR = 3; 416d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 426d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 438e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham * Fails to start power optimized scan as this feature is not supported. 448e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham */ 45af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public static final int SCAN_FAILED_FEATURE_UNSUPPORTED = 4; 468e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham 478e5270fdf5639461d67e9a898a85520abac6053dPrerepa Viswanadham /** 48e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham * Fails to start scan as it is out of hardware resources. 49e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham * @hide 50e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham */ 51e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham public static final int SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES = 5; 52e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham 53461111bc3d9b53f745a9be686504aee161f36c28Amith Yamasani static final int NO_ERROR = 0; 54461111bc3d9b53f745a9be686504aee161f36c28Amith Yamasani 55e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham /** 56af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang * Callback when a BLE advertisement has been found. 576d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 58d3df86e5f0eccefcd7f3b60f07c945d1201a5d89Prerepa Viswanadham * @param callbackType Determines how this callback was triggered. Could be one of 59d3df86e5f0eccefcd7f3b60f07c945d1201a5d89Prerepa Viswanadham * {@link ScanSettings#CALLBACK_TYPE_ALL_MATCHES}, 60d3df86e5f0eccefcd7f3b60f07c945d1201a5d89Prerepa Viswanadham * {@link ScanSettings#CALLBACK_TYPE_FIRST_MATCH} or 61d3df86e5f0eccefcd7f3b60f07c945d1201a5d89Prerepa Viswanadham * {@link ScanSettings#CALLBACK_TYPE_MATCH_LOST} 626d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param result A Bluetooth LE scan result. 636d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 64af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public void onScanResult(int callbackType, ScanResult result) { 65af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang } 666d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 676d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 686d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when batch results are delivered. 696d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 706d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param results List of scan results that are previously scanned. 716d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 72af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public void onBatchScanResults(List<ScanResult> results) { 73af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang } 746d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 756d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 76af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang * Callback when scan could not be started. 779960b576533041d07b141008c5925dcecb8c9224Wei Wang * 78685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang * @param errorCode Error code (one of SCAN_FAILED_*) for scan failure. 796d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 80af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public void onScanFailed(int errorCode) { 81af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang } 826d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang} 83