What's new in Iristick SDK 1.2¶
This is a minor feature release that is backward-compatible with previous 1.x releases. Applications built with SDK 1.0 up to 1.1 will continue to work with Iristick Services 1.2 without recompiling. Applications built with SDK 1.2 however require Iristick Services 1.2 or later to be installed.
iOS SDK Preview¶
This release introduces the first preview of the Iristick SDK for iOS devices, allowing iOS applications to run on Iristick smart glasses. The preview SDK is available on request. Please get in touch with Iristick if you are interested.
Android 10 support¶
This release adds support for phones running on Android 10. Please note that, due to a bug in Android 10, your pocket unit's firmware may need to be upgraded before it can be used on Android 10. To do so, connect your pocket unit to a phone running on Android 9 or older with Iristick Services 1.2 installed.
Android 10 has removed the option to grant screen capture permission to an app without asking every time. To allow smooth operation when headsets get connected and disconnected, the Iristick Services will now request screen capture permission as soon as a pocket unit is connected to the phone.
Barcode scanning API¶
In previous releases, barcode scanning was only available through the
ACTION_SCAN_BARCODE
intent. This release extends the camera API to give
developers complete control over the barcode scanning process. The new API can
be leveraged to provide continuous barcode scanning and even to scan multiple
barcodes at once.
The following keys have been added to the camera API:
CameraCharacteristics.POSTPROCESS_MAXIMUM_BARCODE_COUNT
CameraCharacteristics.POSTPROCESS_AVAILABLE_BARCODE_FORMATS
CaptureRequest.POSTPROCESS_MODE
CaptureRequest.POSTPROCESS_BARCODE_COUNT
CaptureRequest.POSTPROCESS_BARCODE_FORMATS
CaptureRequest.POSTPROCESS_BARCODE_TARGET
CaptureRequest.POSTPROCESS_BARCODE_TARGET_TOLERANCE
CaptureResult.POSTPROCESS_BARCODES
Read the new barcode scanning API guide for more information.
Other API changes¶
The white balance of the cameras can now be controlled manually. The final white balance gains applied to a frame are also reported as part of the capture results. The corresponding new keys in the camera API are:
CameraCharacteristics.CONTROL_AWB_AVAILABLE_MODES
CaptureRequest.CONTROL_AWB_MODE
CaptureRequest.COLOR_CORRECTION_GAIN_BLUE
CaptureRequest.COLOR_CORRECTION_GAIN_RED
CaptureResult.COLOR_CORRECTION_GAIN_BLUE
CaptureResult.COLOR_CORRECTION_GAIN_RED
To make it easier to select an Iristick camera, the Headset
class got a new
findCamera()
convenience method. The cameras API guide has
been updated to reflect this new recommended way.
Warning
The strings used to identify cameras have changed in this release. As
camera identifiers are generated by the Iristick Services, the change also
applies to applications built with Iristick SDK 1.1 or earlier. There is
no guarantee that identifiers remain stable across releases, devices or
instances. Relying on stable identifiers, e.g., by hardcoding them or
saving them in preferences, results in undefined behavior. Camera
identifiers should always be treated as opaque strings that must be queried
for every Headset
instance with findCamera()
or
getCameraIdList()
.
New constants have been added as aliases to the MediaStore
constants used as
intent extras for the ACTION_IMAGE_CAPTURE
and
ACTION_VIDEO_CAPTURE
intents. It is recommended to
use the new constants:
Intents.EXTRA_OUTPUT
Intents.EXTRA_VIDEO_QUALITY
Intents.EXTRA_SIZE_LIMIT
Intents.EXTRA_DURATION_LIMIT
The Iristick core and support libraries have been annotated with AndroidX annotations for a better developer experience in Android Studio.
Firmware improvements¶
This release contains a number of improvements to the device firmware. When running Iristick Services 1.2, the device firmware is updated automatically.
The camera quality has been improved with better white balance in 5MP still
captures, better auto-exposure results in low light conditions, and improved
auto-focus algorithm. Frame timestamps provided through the
SENSOR_TIMESTAMP
capture result are now more accurate.
Audio has also been improved with better speaker sound quality and higher microphone volume.
Other changes¶
The video capture intent (ACTION_VIDEO_CAPTURE
) has a
new codec selection algorithm which works across a wider range of smartphones.
It will try to pick the common H.264/AVC codec if available. Recording
low-quality videos will now correctly scale and crop the camera frames instead
of capturing the top-left corner.
The Iristick Services no longer prevent other applications from capturing the phone screen contents. While another application is capturing the screen, the display cloning to the heads-up display functionality is disabled. When the other application stops capturing the screen, the Iristick Services will request screen capture again and resume the display cloning functionality.
The web console, available through the developer settings, has been rewritten to make display mirroring work on a broader range of browsers.
The "Disable Premium features" developer setting has been removed as it was often misunderstood by users.
Deprecation notices¶
Relying on the Iristick Accessibility Service for UI interaction is now
discouraged in production as it offers a suboptimal user experience.
The accessibility service might be removed or become optional in a future
release. As part of this move, the following methods of the
IristickBinding
class have been deprecated:
setInteractionRules
, along with theInteractionRule
class,focusView
,enterView
.
The camera2
support package has been deprecated. It is
unmaintained and does not provide full access to all cameras functionality.
Users are advised to follow the cameras API guide instead.
The use of the EXTRA_SIZE_LIMIT
extra for the
ACTION_VIDEO_CAPTURE
intent has been deprecated as it
does not guarantee that the final size of the recorded video will not exceed
the desired limit.
The CaptureAdapter
helper class has been deprecated in
favor of the new CaptureListener2
abstract class.
The timestamp
argument of the
CaptureListener.onCaptureStarted
callback has been
deprecated as it is now unrelated to the more accurate
SENSOR_TIMESTAMP
capture result.
Users are advised to override the variant without timestamp
argument from the
CaptureListener2
abstract class instead.
Patch releases since 1.2¶
Release 1.2.1¶
- A regression that prevented manual camera gain to be set has been fixed.
- Firmware files for A08 hardware have been added.
Release 1.2.2¶
- The touchpad of new B08B hardware has been fixed.
Release 1.2.3¶
- Auto-focus on the B08B zoom camera has been fixed.
- Audio issues on some Samsung phones running Android 10 (e.g., XCover 4s) have been fixed.
Release 1.2.4¶
- Resolution 1280×960 has been added to the supported camera frame sizes.
- The sound quality of the internal speaker has been improved.
- The internal microphones are now used also when an earpiece is plugged in to improve the quality of recorded sound.
- The LED flashlight or laser pointer will not be re-enabled automatically anymore when disconnecting and reconnecting the headset without disconnecting the pocket unit.
- An issue preventing the phone display of some Android 10 devices to be dimmed when the pocket unit is in the pouch has been fixed.
- An issue preventing the screen recording permission dialog to be shown in some circumstances has been fixed.
- Support for obsolete B04, C04 and B05 hardware has been removed.
Release 1.2.5¶
- Voice command recognition performance has been improved.
- A regression yielding many false positives when using French voice commands has been fixed.
- Issues when using the cameras with low framerates or when zooming in have been fixed.
- An issue has been fixed that caused the camera intent to crash when the Iristick Services were not allowed to access the camera.
- Miscellaneous bugfixes.
Release 1.2.6¶
- Add support for Android 11.
Release 1.2.7¶
- The behavior of the camera intents and app have been improved when the headset is disconnected during video recording, or when the activity is put in background.
- Audio issues on Pixel 4a phones when booting the phone with the pocket unit attached, have been fixed.
- Miscellaneous bugfixes.