Thing オーナーは Thing を無効化できます。無効化すると Thing は「ロック」状態になり、以後スコープ内のデータ(Bucket および Object)にアクセスできなくなります。Thing が無効化されてもデータ自体は Kii Cloud に残り、Thing オーナーはデータにアクセス可能です。この機能は、たとえば Thing が盗難にあったり紛失したりした場合において、一時的に Thing の利用を停止したい場合などに有効です。
もちろん Thing オーナーは、後ほど Thing を有効化できます。有効化すると Thing は「ロック解除」状態になり、以後スコープ内のデータにアクセス可能となります。
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.
}
});
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.
}
});