Thing owners and app admin can disable the thing. If the thing is disabled, the thing is "locked" and it will not be able to access its data resources (i.e. buckets and objects in the thing scope). The data resources themselves are kept in the backend and the thing owners and the app admin can still access them. The feature is useful, for example, when the thing is lost or stolen.
The thing owners and app admin can of course re-enable the thing. Once the thing is enabled, it is "unlocked" and it will regain the access to its data resources.
The following sample code shows how to disable a thing.
Android
try {
// Instantiate a thing by vendor thing ID.
KiiThing thing = KiiThing . loadWithVendorThingID ( "rBnvSPOXBDF9r29GJeGS" );
// Disable the thing if it is enabled.
if (! thing . disabled ()) {
thing . disable ();
}
} catch ( AppException e ) {
// Handle the error.
} catch ( IOException e ) {
// Handle the error.
}
// Instantiate a thing by vendor thing ID.
KiiThing . loadWithVendorThingID ( "rBnvSPOXBDF9r29GJeGS" , new KiiCallback < KiiThing >() {
@Override
public void onComplete ( KiiThing result , Exception e ) {
if ( e != null ) {
// Handle the error.
return ;
}
// Disable the thing if it is enabled.
if (! result . disabled ()) {
result . disable ( new KiiCallback < KiiThing >() {
@Override
public void onComplete ( KiiThing result , Exception e ) {
if ( e != null ) {
// Handle the error.
return ;
}
}
});
}
}
});
iOS
Swift:
let thing : KiiThing
do {
// Instantiate a thing by vendor thing ID.
thing = try KiiThing . loadSynchronous ( withVendorThingID : "rBnvSPOXBDF9r29GJeGS" )
} catch ( let error as NSError ){
// Handle the error.
return
}
// Disable the thing if it is enabled.
if ! thing . disabled {
do {
try thing . disableSynchronous ()
} catch let error as NSError {
// Handle the error.
return
}
}
// Instantiate a thing by vendor thing ID.
KiiThing . load ( withVendorThingID : "rBnvSPOXBDF9r29GJeGS" ) { ( thing , error ) -> Void in
if error != nil {
// Handle the error.
return
}
// Disable the thing if it is enabled.
if ! thing !. disabled {
thing !. disable ({ ( thing , error ) -> Void in
if error != nil {
// Handle the error.
return
}
})
}
}
Objective-C:
NSError * error = nil ;
// Instantiate a thing by vendor thing ID.
KiiThing * thing = [ KiiThing loadSynchronousWithVendorThingID : @"rBnvSPOXBDF9r29GJeGS"
error : & error ];
if ( error != nil ) {
// Handle the error.
return ;
}
// Disable the thing if it is enabled.
if ( ! thing . disabled ) {
[ thing disableSynchronous : & error ];
if ( error != nil ) {
// Handle the error.
return ;
}
}
// Instantiate a thing by vendor thing ID.
[ KiiThing loadWithVendorThingID : @"rBnvSPOXBDF9r29GJeGS"
block : ^ ( KiiThing * thing , NSError * error ) {
if ( error != nil ) {
// Handle the error.
return ;
}
// Disable the thing if it is enabled.
if ( ! thing . disabled ) {
[ thing disable : ^ ( KiiThing * thing , NSError * error ) {
if ( error != nil ) {
// Handle the error.
return ;
}
}];
}
}];
JavaScript
// Instantiate a thing by vendor thing ID.
KiiThing . loadWithVendorThingID ( "rBnvSPOXBDF9r29GJeGS" , {
success : function ( thing ) {
// Disable the thing if it is enabled.
if ( ! thing . getDisabled ()) {
thing . disable ({
success : function ( theThing ) {
// Do something.
},
failure : function ( theThing , error ) {
// Handle the error.
}
});
}
},
failure : function ( error ) {
// Handle the error.
}
});
The next sample code shows how to enable a thing.
Android
try {
// Instantiate a thing by vendor thing ID.
KiiThing thing = KiiThing . loadWithVendorThingID ( "rBnvSPOXBDF9r29GJeGS" );
// Enable the thing if it is disabled.
if ( thing . disabled ()) {
thing . enable ();
}
} catch ( AppException e ) {
// Handle the error.
} catch ( IOException e ) {
// Handle the error.
}
// Instantiate a thing by vendor thing ID.
KiiThing . loadWithVendorThingID ( "rBnvSPOXBDF9r29GJeGS" , new KiiCallback < KiiThing >() {
@Override
public void onComplete ( KiiThing result , Exception e ) {
if ( e != null ) {
// Handle the error.
return ;
}
// Enable the thing if it is disabled.
if ( result . disabled ()) {
result . enable ( new KiiCallback < KiiThing >() {
@Override
public void onComplete ( KiiThing result , Exception e ) {
if ( e != null ) {
// Handle the error.
return ;
}
}
});
}
}
});
iOS
Swift:
let thing : KiiThing
do {
// Instantiate a thing by vendor thing ID.
thing = try KiiThing . loadSynchronous ( withVendorThingID : "rBnvSPOXBDF9r29GJeGS" )
} catch ( let error as NSError ){
// Handle the error.
return
}
// Enable the thing if it is disabled.
if thing . disabled {
do {
try thing . enableSynchronous ()
} catch let error as NSError {
// Handle the error.
return
}
}
// Instantiate a thing by vendor thing ID.
KiiThing . load ( withVendorThingID : "rBnvSPOXBDF9r29GJeGS" ) { ( thing , error ) -> Void in
if error != nil {
// Handle the error.
return
}
// Enable the thing if it is disabled.
if thing !. disabled {
thing !. enable ({ ( thing , error ) -> Void in
if error != nil {
// Handle the error.
return
}
})
}
}
Objective-C:
NSError * error = nil ;
// Instantiate a thing by vendor thing ID.
KiiThing * thing = [ KiiThing loadSynchronousWithVendorThingID : @"rBnvSPOXBDF9r29GJeGS"
error : & error ];
// Enable the thing if it is disabled.
if ( thing . disabled ) {
[ thing enableSynchronous : & error ];
if ( error != nil ) {
// Handle the error.
return ;
}
}
// Instantiate a thing by vendor thing ID.
[ KiiThing loadWithVendorThingID : @"rBnvSPOXBDF9r29GJeGS"
block : ^ ( KiiThing * thing , NSError * error ) {
if ( error != nil ) {
// Handle the error.
return ;
}
// Enable the thing if it is disabled.
if ( thing . disabled ) {
[ thing enable : ^ ( KiiThing * thing , NSError * error ) {
if ( error != nil ) {
// Handle the error.
return ;
}
}];
}
}];
JavaScript
// Instantiate a thing by vendor thing ID.
KiiThing . loadWithVendorThingID ( "rBnvSPOXBDF9r29GJeGS" , {
success : function ( thing ) {
// Enable the thing if it is disabled.
if ( thing . getDisabled ()) {
thing . enable ({
success : function ( theThing ) {
// Do something.
},
failure : function ( theThing , error ) {
// Handle the error.
}
});
}
},
failure : function ( error ) {
// Handle the error.
}
});