From 8a6f74b7d9ac3b0377da8e1ef49bd8b7b64eafa8 Mon Sep 17 00:00:00 2001 From: Bjørn Mork Date: Mon, 20 May 2019 18:58:13 +0200 Subject: android wip: building, but crashing when scanning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bjørn Mork --- Defogger/Makefile | 2 +- .../no/mork/android/defogger/ScannerActivity.java | 45 ++++++++++++++-------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/Defogger/Makefile b/Defogger/Makefile index af414ad..4fecda2 100644 --- a/Defogger/Makefile +++ b/Defogger/Makefile @@ -14,7 +14,7 @@ JAVAVER ?= 8 ANDROID_HOME ?= /usr/lib/android-sdk SDKCLASSPATH ?= $(ANDROID_HOME)/platforms/android-$(APIVER)/android.jar -RESOURCES=layout/activity_main.xml values/strings.xml +RESOURCES=layout/activity_main.xml layout/activity_scanner.xml layout/scanitem.xml values/strings.xml RES=$(addprefix res/,$(RESOURCES)) ## Temp disabled while we have some non-building classess.... diff --git a/Defogger/src/no/mork/android/defogger/ScannerActivity.java b/Defogger/src/no/mork/android/defogger/ScannerActivity.java index 552a746..5cc5989 100644 --- a/Defogger/src/no/mork/android/defogger/ScannerActivity.java +++ b/Defogger/src/no/mork/android/defogger/ScannerActivity.java @@ -5,18 +5,20 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.le.BluetoothLeScanner; import android.bluetooth.le.ScanCallback; +import android.bluetooth.le.ScanResult; import android.content.Context; import android.content.Intent; -import android.support.v7.widget.RecyclerView; import android.os.Bundle; import android.os.Handler; +import android.util.Log; +import android.widget.ListView; import android.widget.Toast; // lots of nice examples: https://www.programcreek.com/java-api-examples/index.php?api=android.bluetooth.le.ScanCallback public class ScannerActivity extends Activity { - + private static String msg = "Defogger Scanning: "; // Stops scanning after 10 seconds. private static final long SCAN_PERIOD = 10000; private BluetoothAdapter bluetoothAdapter; @@ -24,45 +26,54 @@ public class ScannerActivity extends Activity { private Handler handler; private ScanCallback leScanCallback; private BluetoothLeScanner btScanner; - - private RecyclerView recyclerView; - private RecyclerView.Adapter mAdapter; - private RecyclerView.LayoutManager layoutManager; + private ScanListAdapter scanlistAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 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); - + ListView listView = (ListView) findViewById(R.id.scanlist_view); + scanlistAdapter = new ScanListAdapter(this, R.layout.scanitem, R.id.scanitem); + listView.setAdapter(scanlistAdapter); + scanlistAdapter.addDevice("foo"); + bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); btScanner = bluetoothAdapter.getBluetoothLeScanner(); + if (btScanner == null) { + Log.d(msg, "getBluetoothLeScanner() returned NULL"); + } leScanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { + Log.d(msg, "onScanResult()"); super.onScanResult(callbackType, result); - mAdapter.addDevice(result.getDevice().getAddress()); + scanlistAdapter.addDevice(result.getDevice().getAddress()); } }; CharSequence text = "Hello toast!"; - + Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show(); Intent intent = new Intent(); intent.putExtra("scan_ret", "This data is returned when scan activity is finished."); setResult(RESULT_OK, intent); - finish(); + } + + @Override + protected void onResume() { + super.onResume(); + //scanForCamera(true); + //finish(); } protected void scanForCamera(final boolean enable) { mScanning = enable; + Log.d(msg, "entered scanForCamera()"); + if (btScanner == null) { + return; + } if (enable) { // Stops scanning after a pre-defined scan period. handler.postDelayed(new Runnable() { @@ -73,7 +84,9 @@ public class ScannerActivity extends Activity { } }, SCAN_PERIOD); + Log.d(msg, "starting scan()"); btScanner.startScan(leScanCallback); + Log.d(msg, "scan started()"); } else { btScanner.stopScan(leScanCallback); } -- cgit v1.2.3