2.3.0.0 and Later¶
Updated Key Manager¶
The method signature of KeyManager.queryLocalKeysAsync(…)
has changed from
KeyManager.queryLocalKeysAsync(
String userId, boolean forceUpdate, CancellationToken cancellationToken)
to
KeyManager.queryLocalKeysAsync(
String userId, CancellationToken cancellationToken)
The parameter forceUpdate
did only refresh the keys' grant information, which was deprecated in 2.2.0.0 and must not be used any more. Consult the Javadoc for more information.
Migration¶
Omit the forceUpdate
parameter when calling KeyManager.queryLocalKeysAsync(…)
. This won't affect your application's behaviour unless you were using deprecated parts of the SDK.
Android Permissions¶
Adding the com.tapkey.android:Tapkey.MobileLib
as dependency does not add any uses-permission
entries to target app's AndroidManifest any more. Instead, those parts of the SDK that require specific Android permissions are annotated with @RequiresPermission()
.
Migration¶
Bootstrapping¶
Bootstrapping the SDK requires the INTERNET
permission.
TapkeyServiceFactoryBuilder b = new TapkeyServiceFactoryBuilder(this);
this.tapkeyServiceFactory = b.build();
Add the following uses-permission
entry in a target app's AndroidManifest, if not already present:
<manifest … >
…
<uses-permission android:name="android.permission.INTERNET"/>
<application … >
…
</manifest>
Polling¶
Using the SDK's PollingScheduler
class requires the RECEIVE_BOOT_COMPLETED
permission. Otherwise, background polling won't work after the device reboots.
In order to be able to use
PollingScheduler.register(…);
add the following uses-permission
entry in a target app's AndroidManifest, if not already present:
<manifest … >
…
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application … >
…
</manifest>
Bluetooth¶
Interacting with locks via Bluetooth requires the BLUETOOTH
, BLUETOOTH_ADMIN
and ACCESS_COARSE_LOCATION
permissions. The latter is required to list devices nearby.
bleLockScanner.startForegroundScan();
Add the following uses-permission
entry in a target app's AndroidManifest, if not already present:
<manifest … >
…
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application … >
…
</manifest>