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