package io.trygvis.android.bt; import android.os.Binder; import java.util.List; public interface BtService { boolean initialize(BtServiceListener btServiceListener, Supplier dataSupplier); void clearCache(); boolean isScanning(); boolean startScanning(long timeoutMs); void stopScanning(); // BtDevice getDevice(String macAddress); List> getDevices(); interface Supplier { A get(); } interface BtServiceListener { void onScanStarted(); void onNewDevice(BtDevice device); void onScanStopped(); } public abstract class AbstractBtServiceListener implements BtServiceListener { public void onScanStarted() { } public void onScanStopped() { } } public class LocalBinder extends Binder { private final BtService service; public LocalBinder(BtService service) { this.service = service; } public BtService getService() { return service; } } }