Small improvements to discovery, only scan for 1min #33
This commit is contained in:
parent
dbffd5a42f
commit
0629d6aa5d
|
@ -9,6 +9,7 @@ import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
@ -31,6 +32,9 @@ import nodomain.freeyourgadget.gadgetbridge.adapter.DeviceCandidateAdapter;
|
||||||
|
|
||||||
public class DiscoveryActivity extends Activity implements AdapterView.OnItemClickListener {
|
public class DiscoveryActivity extends Activity implements AdapterView.OnItemClickListener {
|
||||||
private static final String TAG = "DiscoveryAct";
|
private static final String TAG = "DiscoveryAct";
|
||||||
|
private static final long SCAN_DURATION = 60000; // 60s
|
||||||
|
|
||||||
|
private Handler handler = new Handler();
|
||||||
|
|
||||||
private BroadcastReceiver bluetoothReceiver = new BroadcastReceiver() {
|
private BroadcastReceiver bluetoothReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -52,6 +56,12 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
private Runnable stopRunnable = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
stopDiscovery();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private void bluetoothStateChanged(int oldState, int newState) {
|
private void bluetoothStateChanged(int oldState, int newState) {
|
||||||
discoveryFinished();
|
discoveryFinished();
|
||||||
|
@ -164,6 +174,11 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
|
||||||
* Pre: bluetooth is available, enabled and scanning is off
|
* Pre: bluetooth is available, enabled and scanning is off
|
||||||
*/
|
*/
|
||||||
private void startDiscovery() {
|
private void startDiscovery() {
|
||||||
|
if (isScanning) {
|
||||||
|
Log.w(TAG, "Not starting BLE discovery, because already scanning.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Log.i(TAG, "Starting discovery...");
|
Log.i(TAG, "Starting discovery...");
|
||||||
discoveryStarted(); // just to make sure
|
discoveryStarted(); // just to make sure
|
||||||
if (ensureBluetoothReady()) {
|
if (ensureBluetoothReady()) {
|
||||||
|
@ -175,8 +190,10 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stopDiscovery() {
|
private void stopDiscovery() {
|
||||||
|
Log.i(TAG, "Stopping discovery");
|
||||||
if (isScanning) {
|
if (isScanning) {
|
||||||
adapter.stopLeScan(leScanCallback);
|
adapter.stopLeScan(leScanCallback);
|
||||||
|
handler.removeMessages(0, stopRunnable);
|
||||||
// unfortunately, we never get a call back when stopping the scan, so
|
// unfortunately, we never get a call back when stopping the scan, so
|
||||||
// we do it manually:
|
// we do it manually:
|
||||||
discoveryFinished();
|
discoveryFinished();
|
||||||
|
@ -213,6 +230,8 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startBLEDiscovery() {
|
private void startBLEDiscovery() {
|
||||||
|
handler.removeMessages(0, stopRunnable);
|
||||||
|
handler.postDelayed(stopRunnable, SCAN_DURATION);
|
||||||
adapter.startLeScan(leScanCallback);
|
adapter.startLeScan(leScanCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue