 +BlenoBindings.prototype.onServiceStarted = function(status) {
 +  log.debug('onServiceStarted', status);
 +
-+  assert(this.pendingSetServices);
++  if (!this.pendingSetServices) {
++    log.warn('Adapter reset while starting service');
++    return;
++  }
++
 +  assert(this.serviceHandle !== null);
++  assert(!this.pendingAttributes);
 +
 +  this.pendingSetServices = null;
-+  this.pendingAttributes = null;
 +
 +  if (status) {
 +    const error = new Error('Failed to start service, status ' + status);

+include $(BUILD_NODE_MODULE)
diff --git a/lib/android/bindings.js b/lib/android/bindings.js
new file mode 100644
index 0000000..fc52c3b
--- /dev/null
+++ b/lib/android/bindings.js
@@ -0,0 +1,837 @@
+'use strict';
+
+const assert = require('assert');

+BlenoBindings.prototype.onAttributeAdded = function(status, handle) {
+  log.debug('onAttributeAdded', status, handle);
+
+  if (!this.pendingSetServices) {
+    log.warn('Adapter reset while adding attributes');
+    return;
+  }
+
+  assert(this.serviceHandle !== null);
+  assert(this.pendingAttributes);
+
+  if (status) {
+    const error = new Error('Failed to add attribute, status ' + status);
