package io.trygvis.android.bt; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.sqlite.SQLiteDatabase; import java.util.Collection; import io.trygvis.android.Function; public interface BtService { boolean initialize(BtDbIntegration btDbIntegration); void clearCache(); boolean isScanning(); boolean startScanning(long timeoutMs); void stopScanning(); BtDevice getDevice(String address); A getTag(String address); Collection> getDevices(); Collection getTags(); T runTx(Function action); public static interface BtDbIntegration { A createTag(SQLiteDatabase db, BtDevice a); } public static class BtServiceListenerBroadcastReceiver extends BroadcastReceiver { public static final String INTENT_NAME = BtServiceListenerBroadcastReceiver.class.getName(); public static final IntentFilter INTENT_FILTER = new IntentFilter(INTENT_NAME); public void onReceive(Context context, Intent intent) { if (!intent.getAction().equals(INTENT_NAME)) { return; } DefaultBtService.dispatchEvent(intent, this); } public void onScanStarted() { } public void onScanStopped() { } public void onNewDevice(String address) { } public void onDeviceConnection(String address) { } } }