Class DMSDetectorView
- All Implemented Interfaces:
android.graphics.drawable.Drawable.Callback
,android.view.accessibility.AccessibilityEventSource
,android.view.KeyEvent.Callback
,android.view.View.OnTouchListener
,android.view.ViewManager
,android.view.ViewParent
As with all of DM SDK 3.0 components a license key is required to construct a DMSDetectorView object.
The license key must be located in the application's manifest. To add your license key to the manifest,
create an entry similar to the following inside the <application>
section.
<meta-data android:name="com.digimarc.LicenseKey"
android:value="license-key-goes-here">
The android:value=""
entry can either contain your key string itself or it can contain an
Android path to a string resource (i.e. "@string/license_key").
Many of DMSDetectorView's features may be configured via layout attributes. To use these you will
need to add 'xmlns:custom="http://schemas.android.com/apk/res-auto"'
to your layout if it is not
already present.
Attributes:
"custom:enableTapToFocus"
- Enable/disable tap-to-focus behavior. See
setTapFocusState(boolean)
.
"custom:imageOnly"
- Setting this to true will disable audio capture. See
setImageOnly(boolean)
.
"custom:showHelpPrompts"
- If set this will show a rotating series of help
messages on the screen.
"custom:visualizerType"
- Enables display of an audio visualizer.
Possible values: none
, microphone
"custom:visualizerLocation"
- Sets location of audio visualizer.
Possible values: topLeft
, topRight
, bottomLeft
, bottomRight
"custom:visualizerBelowHelp"
- If the visualizer is at the top of the screen
and help text is also visible, should the visualizer appear below the text. Default: false
"custom:showSpinner"
- Set whether a spinner should be shown while payloads
are being resolved. Default: true
"custom:overlayType"
- Set the type of UI overlay.
Possible values: none
, aiming_view
, detect_region
Default: aiming_view
"custom:showDetectionLocations"
- Set whether image detection locations are drawn over
the camera preview. Default: false
Deprecated Attributes:
"custom:showDetectRegion"
- Set whether the image detection region is
highlighted on screen. See showDetectRegion(Context, boolean)
. Note that
"custom:overlayType"
will override this value.
"custom:showAimingView"
- Set whether aiming view should be inflated/added to
the component. Note that "custom:overlayType"
will override this value.
Default: true
"custom:aimingView"
- Allows a custom aiming view to be used. See
setAimingView(View, FrameLayout.LayoutParams)
.
"custom:centerOffsetVertical"
- Moves the location where the aiming view
and spinner are shown up or down in the component. Value is a percentage of the screen height, and negative
values move the view up. Supported value range is (-25, 25)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Errors that can be handled via theDISErrorListener
interface.static class
This class can be used to customize the visual appearance of image detection locations.static enum
Overlay types that can be set using thesetOverlayType(OverlayType)
method.Nested classes/interfaces inherited from class android.widget.LinearLayout
android.widget.LinearLayout.LayoutParams
Nested classes/interfaces inherited from class android.view.ViewGroup
android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener
Nested classes/interfaces inherited from class android.view.View
android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener, android.view.View.OnUnhandledKeyEventListener
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Enables all audio symbologies.static final int
Enables all normal image symbologies.static final int
Enables all normal image symbologies as well as all audio symbologies.Fields inherited from class android.widget.LinearLayout
HORIZONTAL, SHOW_DIVIDER_BEGINNING, SHOW_DIVIDER_END, SHOW_DIVIDER_MIDDLE, SHOW_DIVIDER_NONE, VERTICAL
Fields inherited from class android.view.ViewGroup
FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE
Fields inherited from class android.view.View
ACCESSIBILITY_DATA_SENSITIVE_AUTO, ACCESSIBILITY_DATA_SENSITIVE_NO, ACCESSIBILITY_DATA_SENSITIVE_YES, ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_ACCESSIBILITY_ACTION, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VISIBLE, X, Y, Z
-
Constructor Summary
ConstructorsConstructorDescriptionDMSDetectorView
(android.content.Context context, android.util.AttributeSet attrs) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Clears the last payload for both audio and image readers.int
Get the bitmask of symbologies the reader is looking for.android.graphics.Point
Get the resolution of the current camera session.int
Get the rotation of the camera image.boolean
Get the state of detection of marksboolean
Query the device for torch supportboolean
initialize
(int readerSymbologies, ReaderOptions readerOptions, DISResultListener resultListener, DISErrorListener errorListener) Initialize the view component.boolean
initialize
(int readerSymbologies, ReaderOptions readerOptions, DISResultListener resultListener, DISErrorListener errorListener, IlluminateSessionParams illuminateParams, SecureWatermarkReadinessObserver readinessObserver) Initialize the view component.boolean
onTouch
(android.view.View view, android.view.MotionEvent event) void
release()
Release all objects held by DMSDetectorView.void
setAimingView
(android.view.View aimingView, android.widget.FrameLayout.LayoutParams params) Deprecated.void
setDetectionEnabled
(boolean enable) Enable/disable detection of marksvoid
setHelpPromptText
(int... helpTextIDs) Set the resource strings that will appear on the video view as help text.void
Customize the detection location display.boolean
setImageDetectionRegion
(android.graphics.RectF region) Specifies the percentage of the visible image area within the camera preview to use for detection.void
setImageOnly
(boolean imageOnly) Set this to true if audio detection is not needed.void
setLicenseKey
(String key) Set the SDK license key.void
setNotifyListener
(DISNotifyListener listener) Set the camera notification listenervoid
setOverlayType
(DMSDetectorView.OverlayType overlayType) Set the overlay type.void
setShowAimingView
(boolean show) Deprecated.void
setShowImageDetectionLocation
(boolean show) Set whether detection locations are drawn over the camera preview.void
setSpinner
(android.view.View spinner, android.widget.FrameLayout.LayoutParams params) Set a spinner view.void
setTapFocusState
(boolean enable) Enable or disables tap to focus on the DMSDetectorView.void
setTorchOn
(boolean state) Turn the torch on or offvoid
showDetectRegion
(android.content.Context context, boolean show) Deprecated.void
This is a shortcut to the showMsg method.void
Displays a dialog with the title and text passed in.void
showWarning
(String caption, String msg) This is a shortcut to the showMsg method.boolean
start()
Starts the view's animations and background services, including audio detection (if enabled) and resolver notifications.void
stop()
Stops the view's animations and background services, including audio detection (if enabled) and resolver notifications.void
Close all DMSDetectorView's resourcesMethods inherited from class android.widget.LinearLayout
generateLayoutParams, getAccessibilityClassName, getBaseline, getBaselineAlignedChildIndex, getDividerDrawable, getDividerPadding, getGravity, getOrientation, getShowDividers, getWeightSum, isBaselineAligned, isMeasureWithLargestChildEnabled, onRtlPropertiesChanged, setBaselineAligned, setBaselineAlignedChildIndex, setDividerDrawable, setDividerPadding, setGravity, setHorizontalGravity, setMeasureWithLargestChildEnabled, setOrientation, setShowDividers, setVerticalGravity, setWeightSum, shouldDelayChildPressedState
Methods inherited from class android.view.ViewGroup
addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, bringChildToFront, childDrawableStateChanged, childHasTransientStateChanged, clearChildFocus, clearDisappearingChildren, clearFocus, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, endViewTransition, findFocus, findOnBackInvokedDispatcherForChild, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onDescendantInvalidated, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout
Methods inherited from class android.view.View
addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearViewTranslationCallback, combineMeasuredStates, computeScroll, computeSystemWindowInsets, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findOnBackInvokedDispatcher, findViewById, findViewWithTag, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAllowedHandwritingDelegatePackageName, getAllowedHandwritingDelegatorPackageName, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBottom, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHandwritingBoundsOffsetBottom, getHandwritingBoundsOffsetLeft, getHandwritingBoundsOffsetRight, getHandwritingBoundsOffsetTop, getHandwritingDelegatorCallback, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLocalVisibleRect, getLocationInSurface, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getPreferKeepClearRects, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityDataSensitive, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isAutoHandwritingEnabled, isClickable, isContextClickable, isCredential, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHandwritingDelegate, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingRelative, isPivotSet, isPreferKeepClear, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, offsetLeftAndRight, offsetTopAndBottom, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onCreateInputConnection, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDragEvent, onDrawForeground, onFilterTouchEventForSecurity, onFinishTemporaryDetach, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onScreenStateChanged, onScrollCaptureSearch, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDataSensitive, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAllowedHandwritingDelegatePackage, setAllowedHandwritingDelegatorPackage, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setAutoHandwritingEnabled, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundGravity, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHandwritingBoundsOffsets, setHandwritingDelegatorCallback, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setIsCredential, setIsHandwritingDelegate, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPreferKeepClear, setPreferKeepClearRects, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setViewTranslationCallback, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, willNotCacheDrawing, willNotDraw
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface android.view.ViewParent
canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout
-
Field Details
-
All_Image_Symbologies
public static final int All_Image_SymbologiesEnables all normal image symbologies. Note that this does not include PDF417.- See Also:
-
All_Audio_Symbologies
public static final int All_Audio_SymbologiesEnables all audio symbologies.- See Also:
-
All_Symbologies
public static final int All_SymbologiesEnables all normal image symbologies as well as all audio symbologies. Note that this does not include PDF417.- See Also:
-
-
Constructor Details
-
DMSDetectorView
@RequiresPermission("android.permission.CAMERA") public DMSDetectorView(@NonNull android.content.Context context, @Nullable android.util.AttributeSet attrs)
-
-
Method Details
-
setImageOnly
public void setImageOnly(boolean imageOnly) Set this to true if audio detection is not needed. Note that to enable image only mode this method must be called before callinginitialize(int, ReaderOptions, DISResultListener, DISErrorListener)
.- Parameters:
imageOnly
- set to true to disable audio detections
-
initialize
@RequiresPermission("android.permission.CAMERA") public boolean initialize(int readerSymbologies, @Nullable ReaderOptions readerOptions, @NonNull DISResultListener resultListener, @Nullable DISErrorListener errorListener) Initialize the view component. Note that the DMSDetectorView can be initialized only once. Calling this method a second time without first callinguninitialize()
will cause an error to be raised via the error listener (if one is present).Note that this method does not support reading digital watermarks that require certificates. To read those watermarks, an application must use the
initialize(int, ReaderOptions, DISResultListener, DISErrorListener, IlluminateSessionParams, SecureWatermarkReadinessObserver)
method instead.- Parameters:
readerSymbologies
- Bitmask of symbologies to search for. Bitmask values for both image and audio symbologies may be specified here, and the appropriate readers and media capture components will be configured to support it. Several pre-defined constants are available with support for major blocks of symbologies (All_Image_Symbologies, All_Audio_Symbologies & All_Symbologies). You can also build your own set of symbologies via theBaseReader.buildSymbologyMask(BaseReader.Symbology...)
method. The available symbologies can be found inBaseReader.ImageSymbology
andBaseReader.AudioSymbology
. Note that if no audio symbologies are specified then audio capture will not be performed, and likewise for image symbologies and capture.readerOptions
- Optional dictionary of reader options values. Possible options may be found inReaderOptions
.resultListener
- Callback for SDK notifications. This may be either aDISResultListener
or aDISResultListener
object.errorListener
- Optional listener for errors. If this is not supplied then error dialogs will be displayed instead.- Returns:
- true for success. False will be returned if initialize is called after the component has already be initialized.
-
initialize
@RequiresPermission("android.permission.CAMERA") public boolean initialize(int readerSymbologies, @Nullable ReaderOptions readerOptions, @NonNull DISResultListener resultListener, @Nullable DISErrorListener errorListener, @NonNull IlluminateSessionParams illuminateParams, @NonNull SecureWatermarkReadinessObserver readinessObserver) Initialize the view component. This version of the initialize() method supports reading digital watermarks that require certificates. Note that the DMSDetectorView can be initialized only once. Calling this method a second time without first callinguninitialize()
will cause an error to be raised via the error listener (if one is present).- Parameters:
readerSymbologies
- Bitmask of symbologies to search for. Bitmask values for both image and audio symbologies may be specified here, and the appropriate readers and media capture components will be configured to support it. Several pre-defined constants are available with support for major blocks of symbologies (All_Image_Symbologies, All_Audio_Symbologies & All_Symbologies). You can also build your own set of symbologies via theBaseReader.buildSymbologyMask(BaseReader.Symbology...)
method. The available symbologies can be found inBaseReader.ImageSymbology
andBaseReader.AudioSymbology
. Note that if no audio symbologies are specified then audio capture will not be performed, and likewise for image symbologies and capture.readerOptions
- Optional dictionary of reader options values. Possible options may be found inReaderOptions
.resultListener
- Callback for SDK notifications. This may be either aDISResultListener
or aDISResultListener
object.errorListener
- Optional listener for errors. If this is not supplied then error dialogs will be displayed instead.illuminateParams
- Illuminate configuration for Digital Watermarks readingreadinessObserver
- Listener for secure watermark readiness status.- Returns:
- true for success. False will be returned if initialize is called after the component has already be initialized.
-
setNotifyListener
Set the camera notification listener- Parameters:
listener
- The application's implementation of DISNotifyListener interface
-
start
public boolean start()Starts the view's animations and background services, including audio detection (if enabled) and resolver notifications. This is typically invoked in an activity/fragment's onResume() event.Note that this method does not affect image detection. The camera preview stream and detection are started automatically when DMSDetectorView becomes visible. No further action is required by the developer. Use
setDetectionEnabled(boolean)
to manage detection independent of the view's lifecycle.- Returns:
- true if successful
-
stop
public void stop()Stops the view's animations and background services, including audio detection (if enabled) and resolver notifications. This method is intended to be invoked from an activity/fragment's onPause() event.Note that this method does not affect image detection. The camera preview stream and detection are stopped automatically when DMSDetectorView loses visibility. No further action is required by the developer. Use
setDetectionEnabled(boolean)
to manage detection independent of the view's lifecycle. -
setLicenseKey
Set the SDK license key. This method is provided as an alternative to specifying the license key in your application's manifest.
Note: This method must be called before callinginitialize(int, ReaderOptions, DISResultListener, DISErrorListener)
.- Parameters:
key
- License key
-
setDetectionEnabled
public void setDetectionEnabled(boolean enable) Enable/disable detection of marks- Parameters:
enable
- true to enable detection, false to disable
-
getDetectionEnabled
public boolean getDetectionEnabled()Get the state of detection of marks- Returns:
- true if detection of marks is enabled, false if disabled
-
getActiveSymbologies
public int getActiveSymbologies()Get the bitmask of symbologies the reader is looking for.- Returns:
- Bitmask of symbologies.
-
uninitialize
public void uninitialize()Close all DMSDetectorView's resources -
release
public void release()Release all objects held by DMSDetectorView. Internally this method callsuninitialize()
as well as releasing the camera. The normal use for the method is to call it from the application's onDestroy() method. Once this method has been called the DMSDetectorView instance cannot be initialized or used again. -
setSpinner
public void setSpinner(@NonNull android.view.View spinner, @Nullable android.widget.FrameLayout.LayoutParams params) Set a spinner view. By default the DMSDetectorView creates a spinner view on initialization unless thecustom:showSpinner
layout option has been set tofalse
. The spinner view will be shown while payloads are being resolved and be hidden the rest of the time.- Parameters:
spinner
- the spinner's viewparams
- the view's layout. If null a FrameLayout will be created for the spinner.
-
setAimingView
@Deprecated public void setAimingView(@Nullable android.view.View aimingView, @Nullable android.widget.FrameLayout.LayoutParams params) Deprecated.Set an optional aiming view to replace the default crosshair. This can also be configured by using the DMSDetectorView attributecustom:aimingView
in your layout file.Note that the aiming view will only be displayed when overlay type has been set to Aiming View, either via the layout attributes or
setOverlayType(OverlayType)
.- Parameters:
aimingView
- the view object. If null the existing aiming view will be removed.params
- the view's layout. If null a FrameLayout will be created to wrap the new view.
-
setOverlayType
Set the overlay type. By default Crosshairs are shown.- Parameters:
overlayType
- Type of overlay.
-
setShowAimingView
Deprecated.This method has been deprecated. UsesetOverlayType(OverlayType)
instead.Show or hide the aiming view
- Parameters:
show
- Show (true) or hide (false) the view
-
setShowImageDetectionLocation
public void setShowImageDetectionLocation(boolean show) Set whether detection locations are drawn over the camera preview. The location display can be configured usingsetImageDetectionLocationStyle(ImageDetectionLocationStyle)
.- Parameters:
show
- Show (true) or hide (false) code detection locations
-
setImageDetectionLocationStyle
public void setImageDetectionLocationStyle(@NonNull DMSDetectorView.ImageDetectionLocationStyle configuration) Customize the detection location display. If this method is not called a default configuration defined inDMSDetectorView.ImageDetectionLocationStyle.DEFAULT
is used.- Parameters:
configuration
- Detection layer configuration.
-
setImageDetectionRegion
public boolean setImageDetectionRegion(@NonNull android.graphics.RectF region) throws ReaderException Specifies the percentage of the visible image area within the camera preview to use for detection. The provided rect should match the display's orientation. Applications that have a use case for constraining detection within areas of the frame outside of the visible camera preview should useImageReader.setImageDetectionRegion(DetectionRegion)
orVideoCaptureReader.setImageDetectionRegion(DetectionRegion)
.- Parameters:
region
- Region for detection. Each value within the rect should be in the range 0..1- Returns:
- Boolean indicating whether the region is valid or not. A region is considered invalid
if:
1) any value < 0.0f
2) any value > 1.0f
3) left > right
4) top > bottom
5) either the height or width of the region is less than 0.15f.
- Throws:
ReaderException
- An exception will be thrown this method is called beforeinitialize(int, ReaderOptions, DISResultListener, DISErrorListener)
has been called.
-
showDetectRegion
Deprecated.This method has been deprecated. UsesetOverlayType(OverlayType)
instead.Allows the display of a grayed out region on the screen showing areas of the image where detection is occurring. This can also be configured by using the DMSDetectorView attribute
custom:showDetectRegion
in your layout file.- Parameters:
context
- Application context.show
- Should the view be shown or not. If this parameter is true and the view does not yet exist it will be created.
-
setTapFocusState
public void setTapFocusState(boolean enable) Enable or disables tap to focus on the DMSDetectorView. Digimarc strongly recommends that this is be enabled. This helps with focus in difficult devices.
This option may also be set in your xml layout via the
custom:enableTapToFocus
attribute.- Parameters:
enable
- Should tap-to-focus be enabled?
-
setHelpPromptText
public void setHelpPromptText(@NonNull int... helpTextIDs) Set the resource strings that will appear on the video view as help text. The specified strings will cycle through the help prompt view near the top of the camera view.In order for this call to have any effect help prompts must be enabled in the xml layout via the
custom:showHelpPrompts
attribute.Note that if an empty set of IDs is passed in the help text display will be hidden.
- Parameters:
helpTextIDs
- One or more string IDs.
-
getIsTorchAvailable
public boolean getIsTorchAvailable()Query the device for torch support- Returns:
- Boolean reflecting whether the device has a torch.
-
setTorchOn
public void setTorchOn(boolean state) Turn the torch on or off- Parameters:
state
- true to turn on torch
-
getCameraResolution
@Nullable public android.graphics.Point getCameraResolution()Get the resolution of the current camera session. This will not be available until after the camera has started. TheDISNotifyListener.onCameraAvailable()
callback from theDISNotifyListener
interface is called when the camera is started.- Returns:
- Point object containing the resolution. If the camera is not yet started null will be returned.
-
clearReadCache
public void clearReadCache()Clears the last payload for both audio and image readers. This means that the next payload read will automatically be resolved. Most applications will not need to use this, as the items are removed from the cache automatically after several seconds. -
showError
This is a shortcut to the showMsg method.- Parameters:
caption
- error dialog titlemsg
- error dialog message
-
showWarning
This is a shortcut to the showMsg method.- Parameters:
caption
- warning dialog titlemsg
- warning dialog message
-
showMsg
Displays a dialog with the title and text passed in.- Parameters:
title
- dialog titlemsg
- dialog message
-
onTouch
public boolean onTouch(@NonNull android.view.View view, @NonNull android.view.MotionEvent event) - Specified by:
onTouch
in interfaceandroid.view.View.OnTouchListener
-
getSdkVersion
- Returns:
- The Drop-in-SDK (DIS) version in the form of MAJOR.MINOR.INTERNALNUMBER.
-
getCameraRotation
public int getCameraRotation()Get the rotation of the camera image.- Returns:
- Rotation of the camera image (0, 90, 180 or 270).
-