Short answer. Recognise the card on the device, treat every value as a guess you check and edit, and hand the card, saved once its name is filled in, to the contacts app's own new-contact screen or to a vCard file. The app needs no contacts permission because it never writes to Contacts itself; the final save happens in the contacts app. When a contact QR code disagrees with the printed text, the printed value stays in the field and the QR value is offered beside it. This applies to one side of one Korean or English card per image.
Dotori Business Card ScannerScans Korean and English business cards so you can review the details, then add them to Contacts or share a vCard.
What runs on the phone, and under which conditions
The input is one image of one card side. Scan uses the phone's document scanner, which crops and straightens the card; From photos takes one image you already have. Text recognition and contact QR scanning run on the same image on the device, in parallel. Korean and English rules are applied together, so there is no recognition-language setting to pick first.
Three conditions matter before the first scan:
- There is no app account and no developer-operated card server. Card images and text are not uploaded for recognition.
- The text and QR models are bundled. Optional helper models download over Wi-Fi only; until they are ready, basic recognition and manual editing still work, and the home screen says that the models are being prepared.
- The document scanner may need a Google Play services download the first time, and a cloud photo provider may need a connection. Offline scanning on first use is therefore not promised.
Every value is a guess until you check it
Names, companies and job titles are guessed from the layout, so compare each recognized value with the card image. Tap any field to edit it in place. There is no check mark to tap on each row, and a value that came from a QR code is a candidate like any other.
- The name is the only required field. Save, Add to Contacts and Share vCard stay disabled until the name is filled in.
- Nothing is saved until you tap Save or export the card. Closing a result you have not saved, or a card you have edited, asks whether to discard it. A card whose name could not be read is saved once you type the name; the app never moves the company name into the empty name slot.
- Text the app could not place in any field, such as a logo, a slogan or part of an address, and the second candidates for company, department, job title or address are pre-filled into Memo, joined with " / ". Keep what is useful and delete the rest: whatever stays in the memo is saved and exported in the note.
- A degree such as 공학박사 or Ph.D. is not taken as a name. It is added to the job title as "title / degree".
- Right after recognition, focusing a field highlights the line or lines it was read from on the card image. That evidence is not saved, so a reopened card shows only its image and fields.
When the QR code and the printed card disagree
A contact QR code is decoded reliably, but that does not mean it is current or belongs to the same person as the print. The app therefore treats it as a strong candidate that never wins automatically.
| What differs | What the review screen shows |
|---|---|
| Name, company, job title or address | The printed value stays in the field. The QR value appears as a chip under the row. Tapping the chip switches to it and counts as your edit; the printed value remains as a chip. If the QR value was also in the pre-filled memo and you have not edited the memo, the printed value takes its place there. |
| A phone number, email or website | A value that exists only in the QR code becomes a separate entry to review. Remove the ones you do not want. |
| Same number, different label | The number keeps its printed label, and a small line under it reads, for example, "QR says Office". |
| Several contact QR codes | None is merged. A note at the top says how many were found, and you enter the values you want from the card. |
| A URL QR code | It appears in the Link (QR) field and is never opened automatically. The browser icon on the link row (Open link) opens it only when you tap it, and only for an http or https address. It is not exported as the contact's website. |
If text recognition fails but exactly one contact QR code is found, the app can still fill the review screen from the QR code. Fields filled from QR have no highlight on the image, because there is no printed line behind them — compare them with the card yourself.
Phone numbers stay as printed
Each number keeps its label — mobile, office, direct, main or fax. Tapping the label button cycles through them if the guess is wrong, and Add phone adds a number that was missed.
A country code is added only when it is printed on the card or when you choose one under Default country for phone numbers in Settings. A Korean card does not get +82 just for being Korean, because it may list an overseas office. When a code is added, the formatted number appears in small text under the row; otherwise the printed form is what gets exported.
What reaches the contacts app and the vCard
Pressing Add to Contacts or Share vCard first saves the card, then opens the target.
| Add to Contacts | Share vCard | |
|---|---|---|
| Where it goes | Your contacts app's new-contact screen, filled in | A .vcf file shared with an app you choose |
| Phones and emails | The first of each in dedicated fields; the rest in the note | All of them |
| Websites | In the note | All of them |
| Other name, department, memo, extensions | In the note | In the note |
Opening the new-contact screen is not the same as saving. You finish — or cancel — in the contacts app. The vCard is version 3.0 in UTF-8, and its file name carries a timestamp rather than the person's name. The field mapping, escaping and line folding are described in the tech notes.
A business card is someone else's personal information
Cards are kept in a local list inside the app. Card images are kept by default so you can look at the card again; the image still shows everything printed on it, and the app does not redact it.
- Turning Keep card images off applies to new cards. Images already kept stay until you delete those cards.
- Deleting a card removes its record and retained image. It does not remove the original photo in your gallery, a contact you already saved, or a vCard you already shared. To remove several cards at once, check them in the list and tap Delete (N).
- Card records and images are excluded from Android cloud backup and are configured to be excluded from device-to-device transfer; manufacturer migration tools may behave differently. The full recognized text is not saved with a record.
- Card contents are not placed in ad requests. The app shows an AdMob banner with Google's consent flow. ML Kit diagnostics and AdMob/UMP have their own data practices, described in the privacy policy.
Known limits of version 1
- One side of one card per image. Front and back images are not combined, and several cards in one image are not split.
- No duplicate check against your existing contacts — that would need permission to read them. No search or sorting in the card list, and no cloud sync or restore.
- Compound Korean titles written as one word, such as 개발팀장, are not yet recognized as titles, and all-caps Latin names can be missed as an other name. The review screen is where you catch these.
- Extensions are shown but cannot yet be edited as a separate field, and no message appears on a phone without a contacts app.
- Recognition can make mistakes. Compare every value with the card before you save it.
These points describe app version 1.0.0 as of 23 September 2026.
Dotori Business Card Scanner reads the card on your phone, lets you check and edit every value, and hands the saved card to your contacts app or a vCard file. More about Dotori Business Card Scanner