Android DPM Mode Example

What is DPM Mode for Android? #

Direct Part Marking (DPM) mode is a feature designed to scan barcodes that are directly marked on an item, usually etched or printed onto a surface, instead of printed on a paper label. This mode is particularly useful in industries where items need to be tracked throughout their lifespan. To enable DPM mode, the DataMatrix decoding is enabled and the DPM mode is set to 1. For best results, the decoding speed is set to slow and the barKoder resolution is set to high.

A Region of Interest (ROI) is also set to optimize the viewfinder for scanning.

How to enable DPM Mode? #

Enable via pre-defined template #

You can enable DPM mode via one of our predefined templates.

                private fun setDpmMode() {
    bkdView.config = BarkoderConfig(this, "LICENSE_KEY") {
        Log.i("Licensing SDK: ", it.message)
    }

    BarkoderHelper.applyConfigSettingsFromTemplate(this, bkdView.config, BarkoderConfigTemplate.DPM,
        object : BarkoderConfigCallback { // This is sync callback
            override fun onSuccess() {
                bkdView.config.isRegionOfInterestVisible = true
                bkdView.config.setRegionOfInterest(35f, 40f, 30f, 15f)
             
            }

            override fun onFail(p0: BarkoderException?) {
                TODO("Not yet implemented")
            }
        })
}
            

Enable manually #

Maybe a more straight-forward approach for your use-case would be to directly just enable the required parameters for best DPM scanning. The setting of Region of Interest (ROI) in the case of DPM scanning is a very important step and try not to "skip" it.

                private fun setDpmMode() {
    bkdView.config = BarkoderConfig(this, "LICENSE_KEY") {
        Log.i("Licensing SDK: ", it.message)
    }

    bkdView.config.isRegionOfInterestVisible = true
    bkdView.config.decoderConfig.Datamatrix.enabled = true
    bkdView.config.decoderConfig.Datamatrix.dpmMode = true

    bkdView.config.decoderConfig.decodingSpeed = Barkoder.DecodingSpeed.Slow
    bkdView.config.barkoderResolution = BarkoderResolution.FHD

    bkdView.config.setRegionOfInterest(35f, 40f, 30f, 15f) //this is pretty important for DPM mode
}
            

Page Contents

History:

close

Version #1069

Published: 08/08/2025 06:53:12

Created On: 08/08/2025 06:53:12

Modified By: Viktor Krstev

Published Version

Version #1068

Was Published: 08/08/2025 06:35:18

Created On: 08/08/2025 06:35:18

Modified By: Viktor Krstev

Version #1067

Was Published: 08/08/2025 06:27:06

Created On: 08/08/2025 06:27:06

Modified By: Viktor Krstev

Version #1066

Was Published: 08/08/2025 06:20:27

Created On: 08/08/2025 06:20:27

Modified By: Viktor Krstev

Version #1058

Was Published: 08/08/2025 01:42:22

Created On: 08/08/2025 01:42:22

Modified By: Vladimir Lazarevski

Version #1057

Was Published: 08/08/2025 01:41:27

Created On: 08/08/2025 01:41:27

Modified By: Vladimir Lazarevski

Version #1054

Was Published: 08/08/2025 01:36:27

Created On: 08/08/2025 01:36:27

Modified By: Vladimir Lazarevski

Version #800

Was Published: 11/28/2024 21:00:45

Created On: 11/28/2024 21:00:45

Modified By: Vangel Ivanov

Version #525

Was Published: 08/27/2024 21:37:00

Created On: 08/27/2024 21:37:00

Modified By: Vangel Ivanov

Version #433

Was Published: 08/22/2024 02:48:20

Created On: 08/22/2024 02:48:17

Modified By: Vladimir Lazarevski

Version #418

Was Published: 08/21/2024 17:10:12

Created On: 08/21/2024 17:10:10

Modified By: Vladimir Lazarevski

Version #417

Was Published: 08/21/2024 17:08:16

Created On: 08/21/2024 17:08:13

Modified By: Vladimir Lazarevski

Version #214

Was Published: 08/06/2024 08:59:41

Created On: 08/06/2024 08:45:41

Modified By: Vladimir Lazarevski

Version #213

Was Published: 08/06/2024 08:44:32

Created On: 08/06/2024 08:44:32

Modified By: Lazar Ilievski