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    /**
48af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang     * Callback when a BLE advertisement has been found.
496d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     *
509960b576533041d07b141008c5925dcecb8c9224Wei Wang     * @param callbackType Determines how this callback was triggered. Currently could only be
519960b576533041d07b141008c5925dcecb8c9224Wei Wang     *            {@link ScanSettings#CALLBACK_TYPE_ALL_MATCHES}.
526d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @param result A Bluetooth LE scan result.
536d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
54af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang    public void onScanResult(int callbackType, ScanResult result) {
55af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang    }
566d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang
576d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    /**
586d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * Callback when batch results are delivered.
596d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     *
606d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @param results List of scan results that are previously scanned.
616d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
62af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang    public void onBatchScanResults(List<ScanResult> results) {
63af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang    }
646d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang
656d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    /**
66af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang     * Callback when scan could not be started.
679960b576533041d07b141008c5925dcecb8c9224Wei Wang     *
68685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang     * @param errorCode Error code (one of SCAN_FAILED_*) for scan failure.
696d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
70af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang    public void onScanFailed(int errorCode) {
71af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang    }
726d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang}
73