summaryrefslogtreecommitdiff
path: root/Defogger/src/no/mork/android/defogger/ScannerActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'Defogger/src/no/mork/android/defogger/ScannerActivity.java')
-rw-r--r--Defogger/src/no/mork/android/defogger/ScannerActivity.java54
1 files changed, 29 insertions, 25 deletions
diff --git a/Defogger/src/no/mork/android/defogger/ScannerActivity.java b/Defogger/src/no/mork/android/defogger/ScannerActivity.java
index 5ec114f..552a746 100644
--- a/Defogger/src/no/mork/android/defogger/ScannerActivity.java
+++ b/Defogger/src/no/mork/android/defogger/ScannerActivity.java
@@ -3,16 +3,17 @@ package no.mork.android.defogger;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
+import android.bluetooth.le.BluetoothLeScanner;
+import android.bluetooth.le.ScanCallback;
import android.content.Context;
import android.content.Intent;
+import android.support.v7.widget.RecyclerView;
import android.os.Bundle;
import android.os.Handler;
-//import android.widget.ArrayAdapter;
import android.widget.Toast;
-//class LeDeviceListAdapter extends ArrayAdapter {
-// protected void addDevice(final BluetoothDevice device);
-//}
+
+// lots of nice examples: https://www.programcreek.com/java-api-examples/index.php?api=android.bluetooth.le.ScanCallback
public class ScannerActivity extends Activity {
@@ -21,28 +22,33 @@ public class ScannerActivity extends Activity {
private BluetoothAdapter bluetoothAdapter;
private boolean mScanning;
private Handler handler;
- // private LeDeviceListAdapter leDeviceListAdapter;
- private BluetoothAdapter.LeScanCallback leScanCallback;
+ private ScanCallback leScanCallback;
+ private BluetoothLeScanner btScanner;
+ private RecyclerView recyclerView;
+ private RecyclerView.Adapter mAdapter;
+ private RecyclerView.LayoutManager layoutManager;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- //setContentView(R.layout.scanning);
+ setContentView(R.layout.activity_scanner);
+ recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
+ recyclerView.setHasFixedSize(true);
+ layoutManager = new LinearLayoutManager(this);
+ recyclerView.setLayoutManager(layoutManager);
+ mAdapter = new ScanListAdapter(myDataset);
+ recyclerView.setAdapter(mAdapter);
+
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ btScanner = bluetoothAdapter.getBluetoothLeScanner();
- leScanCallback = new BluetoothAdapter.LeScanCallback() {
-
+ leScanCallback = new ScanCallback() {
@Override
- public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
- runOnUiThread(new Runnable() {
-
- @Override
- public void run() {
- // leDeviceListAdapter.addDevice(device);
- // leDeviceListAdapter.notifyDataSetChanged();
- }
- });
+ public void onScanResult(int callbackType, ScanResult result) {
+ super.onScanResult(callbackType, result);
+ mAdapter.addDevice(result.getDevice().getAddress());
}
};
@@ -56,22 +62,20 @@ public class ScannerActivity extends Activity {
}
protected void scanForCamera(final boolean enable) {
- if (enable) {
+ mScanning = enable;
+ if (enable) {
// Stops scanning after a pre-defined scan period.
handler.postDelayed(new Runnable() {
@Override
public void run() {
mScanning = false;
- bluetoothAdapter.stopLeScan(leScanCallback);
+ btScanner.stopScan(leScanCallback);
}
}, SCAN_PERIOD);
- mScanning = true;
- bluetoothAdapter.startLeScan(leScanCallback);
+ btScanner.startScan(leScanCallback);
} else {
- mScanning = false;
- bluetoothAdapter.stopLeScan(leScanCallback);
+ btScanner.stopScan(leScanCallback);
}
}
-
}