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.

How to enable DPM Mode? #

This mode is particularly useful in industries where items need to be tracked throughout their lifespan.

To enable DPM mode:

  • DataMatrix decoding is enabled.
  • DPM mode is set to true.
  • For best results, the decoding speed is set to slow.
  • Resolution is set to Full HD.
  • A Region of Interest (ROI) is also set to optimize the viewfinder for scanning.

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