{"id":26675768,"url":"https://github.com/furkanturkn/camerax-mlkit-pack","last_synced_at":"2025-04-12T08:12:38.460Z","repository":{"id":71897832,"uuid":"600812983","full_name":"furkanturkn/camerax-mlkit-pack","owner":"furkanturkn","description":"Barcode Reader + CameraX features - Android","archived":false,"fork":false,"pushed_at":"2023-10-21T10:39:31.000Z","size":165,"stargazers_count":23,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T08:12:21.007Z","etag":null,"topics":["barcode-reader","barcode-scanner","camerax","camerax-api","camerax-library","kotlin","mlkit","qrcode-scanner"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/furkanturkn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-02-12T17:16:27.000Z","updated_at":"2024-03-12T11:24:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"b237f8cf-7164-4c36-9363-9ead925eae3c","html_url":"https://github.com/furkanturkn/camerax-mlkit-pack","commit_stats":{"total_commits":32,"total_committers":4,"mean_commits":8.0,"dds":0.59375,"last_synced_commit":"e6ed5629a3dd027e9a1a11555407606dee299098"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkanturkn%2Fcamerax-mlkit-pack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkanturkn%2Fcamerax-mlkit-pack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkanturkn%2Fcamerax-mlkit-pack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkanturkn%2Fcamerax-mlkit-pack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furkanturkn","download_url":"https://codeload.github.com/furkanturkn/camerax-mlkit-pack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537144,"owners_count":21120711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["barcode-reader","barcode-scanner","camerax","camerax-api","camerax-library","kotlin","mlkit","qrcode-scanner"],"created_at":"2025-03-26T03:20:23.430Z","updated_at":"2025-04-12T08:12:38.437Z","avatar_url":"https://github.com/furkanturkn.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch3 align=\"center\"\u003eCameraX ML Kit Pack\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    An awsome library that contains ML Kit and Camrax implementation! You don't need ZXing anymore.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/furkanturkn/camerax-mlkit-pack/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/furkanturkn/camerax-mlkit-pack/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#implementation\"\u003eImplementation\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#CameraxManager-functionalities\"\u003eCameraxManager functionalities\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#Suggestions-for-Reader-Formats\"\u003eSuggestions for Reader Formats\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/51923824/218333385-f66de0a4-4f4a-413d-9455-ce196e3ec12b.png\" width=\"250\" height=\"600\"\u003e\n\u003c/div\u003e\n\nNo need to waste time on CameraX and ML Kit app anymore. This library will speed up your development 100%\n\n\u003cb\u003eFeatures:\u003c/b\u003e\n* CameraX image capturing\n* Ml-Kit barcode scanning with accuracy algorithm.\n* Flash, tap to focus, switch back-front camera.\n* Stop-start ML Kit barcode reading and camera.\n* Run **without** google play services\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\n\n* [![Next][kotlinlang.org]][kotlin-url]\n* \u003cimg src=\"https://user-images.githubusercontent.com/51923824/218334431-179c83c7-f7d5-4e10-8c50-bb790202c7ef.png\" alt=\"Logo\" width=\"60\" height=\"60\"\u003e\n* CameraX\n* Kotlin coroutine\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Getting Started\n\n1. Add maven-jitpack into project level gradle file.\n   ```sh\n   repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n   ```\n2. Add this into dependencies which is in module level gradle file.\n   ```sh\n   dependencies {\n       ...\n       implementation 'com.github.furkanturkn:camerax-mlkit-pack:1.1.2'\n   }\n   ```\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n### Implementation\n\n1. Get camera permission.\n2. Init CameraxManager for activity\n    ```kotlin\n    cameraxManager = CameraxManager.getInstance(\n            this,\n            null,\n            previewView, \n            focusRing, //(ImageView) image that appears with focus animation when clicked on the screen.\n            1 //(Int)(optional) start with FRONT[0] or BACK[1] camera. Default = BACK[1].\n        )\n    ```\n   Init CameraxManager for fragment\n    ```kotlin\n    cameraxManager = CameraxManager.getInstance(\n            context,\n            this,\n            previewView, \n            focusRing, //(ImageView) image that appears with focus animation when clicked on the screen.\n            1 //(Int)(optional) start with FRONT[0] or BACK[1] camera. Default = BACK[1].\n        )\n    ```\n2. Destroy references.\n    ```kotlin\n    override fun onDestroy() {\n        super.onDestroy()\n        cameraxManager?.destroyReferences()\n    }\n    ```\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### CameraxManager functionalities\n\n1. How to start camera?\n   ```kotlin\n    cameraxManager.startCamera()\n   ```\n2. How to start barcode reading?\n   ```kotlin\n    cameraxManager?.setReaderFormats(\n            ReaderType.FORMAT_QR_CODE.value,\n            ReaderType.FORMAT_EAN_8.value,\n            ReaderType.FORMAT_EAN_13.value,\n            .\n            .\n            .\n        )\n    cameraxManager?.startReading()\n   ```\n   \n3. How to stop reading and camera?\n   ```kotlin\n    cameraxManager?.stopReading()\n    cameraxManager?.stopCamera()\n   ```\n\n4. How to change flash status?\n   ```kotlin\n    cameraxManager.changeFlashStatus()\n   ```\n\n5. How to change camera type (front-back)?\n   ```kotlin\n    cameraxManager.changeCameraType()\n   ```\n6. How to capture photo?\n   ```kotlin\n    cameraxManager.capturePhoto()\n   ```\n6. How to change accuracy level of barcode reading?\n   ```kotlin\n     cameraxManager.setReadingAccuracyLevel(levelOfAccuracy)\n   ```\n   levelOfAccuracy = \u003cb\u003e1\u003c/b\u003e (Less accurate, fastest level. If you select only QR type the accuracy level is automatically set to 1.)\u003cbr\u003e\n   levelOfAccuracy = \u003cb\u003e2\u003c/b\u003e (Minimum requirement for correct barcode reading.)\u003cbr\u003e\n   levelOfAccuracy = \u003cb\u003e3\u003c/b\u003e (\u003cb\u003eRecommended and default\u003c/b\u003e accuracy level.)\n   \n   \n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n#### Suggestions for Reader Formats\n\n```\nFor product barcodes:\n  ReaderType.FORMAT_EAN_8.value\n  ReaderType.FORMAT_EAN_13.value\n  ReaderType.FORMAT_UPC_E.value\n  ReaderType.FORMAT_UPC_A.value\n\nFor QR codes:\n  ReaderType.FORMAT_QR_CODE.value\n```\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n### Callbacks example usage\n```kotlin\n  cameraxManager?.apply {\n      setQrReadSuccessListener { result -\u003e\n          println(\"QR RESULT ----------\u003e $result\")\n          tvReadResult.text = result\n      }\n\n      setFlashStatusChangedListener { status -\u003e\n          when (status) {\n              FlashStatus.ENABLED -\u003e {\n                  btnFlash.setBackgroundResource(R.drawable.baseline_flash_on_24)\n              }\n              FlashStatus.DISABLED -\u003e {\n                  btnFlash.setBackgroundResource(R.drawable.baseline_flash_off_24)\n              }\n          }\n      }\n\n      setPhotoCaptureResultListener { capturedBitmap -\u003e\n          runOnUiThread {\n              ivCapturePreview.setImageBitmap(capturedBitmap)\n          }\n      }\n  }\n```\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/furkanturkn/camerax-mlkit-pack.svg?style=for-the-badge\n[contributors-url]: https://github.com/furkanturkn/camerax-mlkit-pack/contributors\n\n[forks-shield]: https://img.shields.io/github/forks/furkanturkn/camerax-mlkit-pack.svg?style=for-the-badge\n[forks-url]: https:/github.com/furkanturkn/camerax-mlkit-pack/network/members\n\n[stars-shield]: https://img.shields.io/github/stars/furkanturkn/camerax-mlkit-pack.svg?style=for-the-badge\n[stars-url]: https://github.com/furkanturkn/camerax-mlkit-pack/stargazers\n\n[issues-shield]: https://img.shields.io/github/issues/furkanturkn/camerax-mlkit-pack.svg?style=for-the-badge\n[issues-url]: https://github.com/furkanturkn/camerax-mlkit-pack/issues\n\n[license-shield]: https://img.shields.io/github/license/furkanturkn/camerax-mlkit-pack.svg?style=for-the-badge\n[license-url]: https://github.com/furkanturkn/camerax-mlkit-pack/blob/master/LICENSE.txt\n\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/furkanturkan\n\n[product-screenshot]: https://user-images.githubusercontent.com/51923824/218333385-f66de0a4-4f4a-413d-9455-ce196e3ec12b.png\n\n[kotlinlang.org]: https://img.shields.io/badge/Kotlin-0095D5?\u0026style=for-the-badge\u0026logo=kotlin\u0026logoColor=white\n[kotlin-url]: https://kotlinlang.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkanturkn%2Fcamerax-mlkit-pack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurkanturkn%2Fcamerax-mlkit-pack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkanturkn%2Fcamerax-mlkit-pack/lists"}