@Override public void onLeScan( final BluetoothDevice device, final int rssi, final byte[] scanRecord) { // if (true) { if (device.getName().contains("SensorTag") || device.getAddress().contains("D0")) { if (onScanListener != null) { onScanListener.onScan(device, rssi, scanRecord); } System.out.println("scan info:"); System.out.println("rssi=" + rssi); System.out.println("ScanRecord:"); for (byte b : scanRecord) System.out.printf("%02X ", b); System.out.println(""); ((Activity) context) .runOnUiThread( new Runnable() { @Override public void run() { Message msg = new Message(); BluetoothScanInfo info = new BluetoothScanInfo(); info.device = device; info.rssi = rssi; info.scanRecord = scanRecord; msg.obj = info; mHandler.sendMessage(msg); } }); } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if (result == null || mOnScanListener == null) { return; } String isbn = result.getContents(); Log.d(TAG, "ISBN = " + isbn); mOnScanListener.onScan(isbn); } else { Toast.makeText(this, "Reading ISBN cancelled. Try again!", Toast.LENGTH_SHORT).show(); } }
private void _handleMessage(Message msg) { Bundle b; boolean aborted; switch (msg.what) { case TYPE_ON_SCAN: b = (Bundle) msg.obj; int tunedFrequency = b.getInt("tunedFrequency"); int signalStrength = b.getInt("signalStrength"); int scanDirection = b.getInt("scanDirection"); aborted = b.getBoolean("aborted"); mListener.onScan(tunedFrequency, signalStrength, scanDirection, aborted); break; case TYPE_ON_FULLSCAN: b = (Bundle) msg.obj; int[] frequency = b.getIntArray("frequency"); int[] signalStrengths = b.getIntArray("signalStrength"); aborted = b.getBoolean("aborted"); mListener.onFullScan(frequency, signalStrengths, aborted); break; } }