summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2019-05-30 20:36:51 +0200
committerBjørn Mork <bjorn@mork.no>2019-05-30 20:36:57 +0200
commita741c028f1cda99c986c4b5ad2669e5e58f4c504 (patch)
tree1f2e5c6dd2f1e957937ca38574ea41fb4c37be2e
parentb7110e2c37dee13e556617b1d35466353a47b2c7 (diff)
gatt connecting and service discovery is working
05-30 20:35:57.539 22814 22814 D Defogger Scanning: : adding 77:6D:BD:24:87:41 05-30 20:35:59.933 22814 22814 D Defogger Adapter: : ScanListAdapter: onClick() will return DCS-8000LH-CC73 05-30 20:35:59.933 22814 22814 D Defogger Scanning: : returnScanResult() 05-30 20:35:59.939 22814 22814 D Defogger Scanning: : stopped scanning 05-30 20:35:59.956 22814 22814 D Defogger MainActivity: : connectDevice() B0:C5:54:4C:CC:73 05-30 20:36:01.870 22814 22831 D Defogger MainActivity: : onConnectionStateChange() 0 2 05-30 20:36:02.826 22814 22831 D Defogger MainActivity: : 00001800-0000-1000-8000-00805f9b34fb 05-30 20:36:02.826 22814 22831 D Defogger MainActivity: : 00001801-0000-1000-8000-00805f9b34fb 05-30 20:36:02.826 22814 22831 D Defogger MainActivity: : 0000d001-0000-1000-8000-00805f9b34fb 05-30 20:36:07.025 22814 22814 D Defogger Scanning: : stopped scanning Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rw-r--r--Defogger/src/no/mork/android/defogger/MainActivity.java89
-rw-r--r--Defogger/src/no/mork/android/defogger/ScannerActivity.java2
2 files changed, 89 insertions, 2 deletions
diff --git a/Defogger/src/no/mork/android/defogger/MainActivity.java b/Defogger/src/no/mork/android/defogger/MainActivity.java
index e3c1de3..46451be 100644
--- a/Defogger/src/no/mork/android/defogger/MainActivity.java
+++ b/Defogger/src/no/mork/android/defogger/MainActivity.java
@@ -2,21 +2,29 @@ package no.mork.android.defogger;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothGattService;
import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
+import java.util.List;
import no.mork.android.defogger.ScannerActivity;
-public class MainActivity extends Activity {
+public class MainActivity extends Activity implements GattClientActionListener {
+ private static String msg = "Defogger MainActivity: ";
private static final int REQUEST_ENABLE_BT = 0x1042;
private BluetoothAdapter bluetoothAdapter;
+ private BluetoothGatt mGatt;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -46,6 +54,8 @@ public class MainActivity extends Activity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent dataIntent) {
+ BluetoothDevice dev;
+
super.onActivityResult(requestCode, resultCode, dataIntent);
switch (requestCode) {
case REQUEST_ENABLE_BT:
@@ -56,9 +66,14 @@ public class MainActivity extends Activity {
break;
default:
+ dev = dataIntent.getExtras().getParcelable("btdevice");
+
TextView hello_text = (TextView) findViewById(requestCode);
- String messageReturn = resultCode == RESULT_OK ? dataIntent.getStringExtra("scan_ret") : "not OK";
+ // String messageReturn = resultCode == RESULT_OK ? dataIntent.getStringExtra("scan_ret") : "not OK";
+
+ String messageReturn = "got: " + dev.getAddress() + " - " + dev.getName();
hello_text.setText(messageReturn);
+ connectDevice(dev);
}
}
@@ -87,4 +102,74 @@ public class MainActivity extends Activity {
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
+
+
+
+ // Gatt connection
+
+ private class GattClientCallback extends BluetoothGattCallback {
+ private GattClientActionListener mClientActionListener;
+
+ public GattClientCallback(GattClientActionListener clientActionListener) {
+ mClientActionListener = clientActionListener;
+ }
+
+ public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
+ Log.d(msg, "onConnectionStateChange() " + status + " " + newState);
+ gatt.discoverServices();
+ }
+
+ public void onServicesDiscovered(BluetoothGatt gatt, int status) {
+ List<BluetoothGattService> serviceList = gatt.getServices();
+
+ for (BluetoothGattService service : serviceList) {
+ Log.d(msg, service.getUuid().toString());
+ }
+
+ }
+ }
+
+ private void connectDevice(BluetoothDevice device) {
+ Log.d(msg, "connectDevice() " + device.getAddress());
+ GattClientCallback gattClientCallback = new GattClientCallback(this);
+ mGatt = device.connectGatt(this, true, gattClientCallback);
+ }
+
+
+ // abstract GattClientActionListener methods
+
+ @Override
+ public void log(String m) {
+ Log.d(msg, m);
+ }
+
+ @Override
+ public void logError(String m) {
+ Log.d(msg, "Error: " + m);
+ }
+
+ @Override
+ public void setConnected(boolean connected) {
+ Log.d(msg, "setConnected()");
+ }
+
+ @Override
+ public void initializeTime() {
+ Log.d(msg, "initializeTime()");
+ }
+
+ @Override
+ public void initializeEcho() {
+ Log.d(msg, "initializeEcho()");
+ }
+
+ @Override
+ public void disconnectGattServer() {
+ Log.d(msg, "disconnectGattServer()");
+ if (mGatt != null) {
+ mGatt.disconnect();
+ mGatt.close();
+ }
+ }
+
}
diff --git a/Defogger/src/no/mork/android/defogger/ScannerActivity.java b/Defogger/src/no/mork/android/defogger/ScannerActivity.java
index bd4e2a9..890a4fd 100644
--- a/Defogger/src/no/mork/android/defogger/ScannerActivity.java
+++ b/Defogger/src/no/mork/android/defogger/ScannerActivity.java
@@ -101,8 +101,10 @@ public class ScannerActivity extends Activity implements Runnable {
public void returnScanResult(BluetoothDevice device) {
Log.d(msg, "returnScanResult()");
+ stopScan();
Intent intent = new Intent();
intent.putExtra("scan_ret", device.toString());
+ intent.putExtra("btdevice", device);
setResult(RESULT_OK, intent);
finish();
}