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. 49a355e5efaf45a534ee6437aa4bae7d30f18c0ec2Jack He * 50e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham * @hide 51e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham */ 52e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham public static final int SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES = 5; 53e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham 54ee02e1ce774777e85b10be6d1ad5c6083fa08c18Jakub Pawlowski /** 55ee02e1ce774777e85b10be6d1ad5c6083fa08c18Jakub Pawlowski * Fails to start scan as application tries to scan too frequently. 56ee02e1ce774777e85b10be6d1ad5c6083fa08c18Jakub Pawlowski * @hide 57ee02e1ce774777e85b10be6d1ad5c6083fa08c18Jakub Pawlowski */ 58ee02e1ce774777e85b10be6d1ad5c6083fa08c18Jakub Pawlowski public static final int SCAN_FAILED_SCANNING_TOO_FREQUENTLY = 6; 59ee02e1ce774777e85b10be6d1ad5c6083fa08c18Jakub Pawlowski 60461111bc3d9b53f745a9be686504aee161f36c28Amith Yamasani static final int NO_ERROR = 0; 61461111bc3d9b53f745a9be686504aee161f36c28Amith Yamasani 62e593d0aec6430d98731d9751facd0414a1c9c6a2Prerepa Viswanadham /** 63af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang * Callback when a BLE advertisement has been found. 646d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 65a355e5efaf45a534ee6437aa4bae7d30f18c0ec2Jack He * @param callbackType Determines how this callback was triggered. Could be one of {@link 66a355e5efaf45a534ee6437aa4bae7d30f18c0ec2Jack He * ScanSettings#CALLBACK_TYPE_ALL_MATCHES}, {@link ScanSettings#CALLBACK_TYPE_FIRST_MATCH} or 67a355e5efaf45a534ee6437aa4bae7d30f18c0ec2Jack He * {@link ScanSettings#CALLBACK_TYPE_MATCH_LOST} 686d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param result A Bluetooth LE scan result. 696d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 70af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public void onScanResult(int callbackType, ScanResult result) { 71af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang } 726d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 736d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 746d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * Callback when batch results are delivered. 756d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 766d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * @param results List of scan results that are previously scanned. 776d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 78af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public void onBatchScanResults(List<ScanResult> results) { 79af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang } 806d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang 816d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang /** 82af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang * Callback when scan could not be started. 839960b576533041d07b141008c5925dcecb8c9224Wei Wang * 84685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang * @param errorCode Error code (one of SCAN_FAILED_*) for scan failure. 856d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang */ 86af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang public void onScanFailed(int errorCode) { 87af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang } 886d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang} 89