ScanCallback.java revision 6d81118032b92caa0f5cfebe11af02a98f819d5e
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    /**
446d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * Callback when a BLE advertisement is found.
456d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     *
466d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @param result A Bluetooth LE scan result.
476d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
486d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    public abstract void onAdvertisementUpdate(ScanResult result);
496d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang
506d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    /**
516d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * Callback when the BLE advertisement is found for the first time.
526d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     *
536d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @param result The Bluetooth LE scan result when the onFound event is triggered.
546d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @hide
556d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
566d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    public abstract void onAdvertisementFound(ScanResult result);
576d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang
586d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    /**
596d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * Callback when the BLE advertisement was lost. Note a device has to be "found" before it's
606d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * lost.
616d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     *
626d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @param result The Bluetooth scan result that was last found.
636d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * @hide
646d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
656d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    public abstract void onAdvertisementLost(ScanResult result);
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     * @hide
726d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
736d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    public abstract void onBatchScanResults(List<ScanResult> results);
746d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang
756d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    /**
766d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     * Callback when scan failed.
776d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang     */
786d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang    public abstract void onScanFailed(int errorCode);
796d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang}
80