de.unikassel.android.sdcframework.devices
Class SampleReceivingDeviceScanner

Package class diagram package SampleReceivingDeviceScanner
java.lang.Object
  extended by de.unikassel.android.sdcframework.util.ObservableEventSourceImpl<Sample>
      extended by de.unikassel.android.sdcframework.devices.AbstractSensorDeviceScanner
          extended by de.unikassel.android.sdcframework.devices.SampleReceivingDeviceScanner
All Implemented Interfaces:
SensorDeviceScanner, ObservableEventSource<Sample>, ObserverRegistration<Sample>
Direct Known Subclasses:
BluetoothDeviceScanner, WifiDeviceScanner

public abstract class SampleReceivingDeviceScanner
extends AbstractSensorDeviceScanner

Abstract base class for scanner types, which do receive sensor data from system broadcasts after the explicit initiation of a system scan.

Such a scanner does run a thread to trigger device scans in the configured frequency and it is using a broadcast receiver to receive the scan results.
Extending classes have to define the related Intent and to implement the handler for received samples, as well as the start and stop methods for the system scan.

See Also:
WifiDeviceScanner, BluetoothDeviceScanner

Nested Class Summary
private  class SampleReceivingDeviceScanner.ScanWorkerThread
          Inner class for a device polling worker thread
 
Field Summary
protected  AtomicBoolean lastScanFinished
          Flag indicating if last scan has finished ( minimal scan frequency is always limited by device speed )
protected  BroadcastReceiver receiver
          The broadcast receiver for the device scan results
protected  SampleReceivingDeviceScanner.ScanWorkerThread worker
          the worker thread
 
Constructor Summary
SampleReceivingDeviceScanner()
          Constructor
 
Method Summary
protected abstract  void doHandleScanResults(Intent intent)
          Handler for the device scan results
protected abstract  boolean doStartDeviceScan()
          Method to start a device scan
protected abstract  void doStopDeviceScan()
          Method to stop a device scan which is called if scanner is stopped while a scan is ongoing
protected abstract  IntentFilter getIntentFilter()
          Getter for intent filter used by the broadcast receiver
 boolean isLastScanFinished()
          Getter for the lastScanFinished
 void onDestroy(Context context)
          Is called when the owner destroys this scanner
private  void registerReceiver(Context context)
          Does register the broadcast receiver for device scan results
 void setLastScanFinished(boolean lastScanFinished)
          Setter for the lastScanFinished
 boolean start(Context context)
          Does start sampling
 boolean stop(Context context)
          Does stop sampling
private  void unregisterReceiver(Context context)
          Does unregister the broadcast receiver for device scan results
 
Methods inherited from class de.unikassel.android.sdcframework.devices.AbstractSensorDeviceScanner
enable, getDevice, isActive, isCompatibleDevice, isEnabled, setActive, setDevice
 
Methods inherited from class de.unikassel.android.sdcframework.util.ObservableEventSourceImpl
getObservers, hasObservers, notify, onObserverRegistration, onObserverUnregistration, registerEventObserver, removeAllObservers, unregisterEventObserver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.unikassel.android.sdcframework.util.facade.ObservableEventSource
hasObservers, notify
 
Methods inherited from interface de.unikassel.android.sdcframework.util.facade.ObserverRegistration
registerEventObserver, removeAllObservers, unregisterEventObserver
 

Field Detail

receiver

protected final BroadcastReceiver receiver
The broadcast receiver for the device scan results


worker

protected final SampleReceivingDeviceScanner.ScanWorkerThread worker
the worker thread


lastScanFinished

protected AtomicBoolean lastScanFinished
Flag indicating if last scan has finished ( minimal scan frequency is always limited by device speed )

Constructor Detail

SampleReceivingDeviceScanner

public SampleReceivingDeviceScanner()
Constructor

Method Detail

start

public final boolean start(Context context)
Description copied from interface: SensorDeviceScanner
Does start sampling

Parameters:
context - the application context
Returns:
true if successful started, false otherwise

stop

public final boolean stop(Context context)
Description copied from interface: SensorDeviceScanner
Does stop sampling

Parameters:
context - the application context
Returns:
true if successful started, false otherwise

registerReceiver

private final void registerReceiver(Context context)
Does register the broadcast receiver for device scan results

Parameters:
context - the application context

unregisterReceiver

private final void unregisterReceiver(Context context)
Does unregister the broadcast receiver for device scan results

Parameters:
context - the application context

isLastScanFinished

public final boolean isLastScanFinished()
Getter for the lastScanFinished

Returns:
the lastScanFinished

setLastScanFinished

public final void setLastScanFinished(boolean lastScanFinished)
Setter for the lastScanFinished

Parameters:
lastScanFinished - the lastScanFinished to set

onDestroy

public void onDestroy(Context context)
Description copied from interface: SensorDeviceScanner
Is called when the owner destroys this scanner

Specified by:
onDestroy in interface SensorDeviceScanner
Overrides:
onDestroy in class AbstractSensorDeviceScanner
Parameters:
context - the application context

getIntentFilter

protected abstract IntentFilter getIntentFilter()
Getter for intent filter used by the broadcast receiver

Returns:
the intent filter used by the broadcast receiver

doHandleScanResults

protected abstract void doHandleScanResults(Intent intent)
Handler for the device scan results

Parameters:
intent - the broadcast intent to handle

doStartDeviceScan

protected abstract boolean doStartDeviceScan()
Method to start a device scan

Returns:
true if successful, false otherwise

doStopDeviceScan

protected abstract void doStopDeviceScan()
Method to stop a device scan which is called if scanner is stopped while a scan is ongoing