Как получить все данные из кода Qr, такие как имя, адрес электронной почты, контактные данные программно? - PullRequest
2 голосов
/ 28 февраля 2020

Я использую ZXingScannerView для сканирования штрих-кода, и он показывает только тип и содержание штрих-кода. Но я хочу извлечь полные данные из контента, такого как имя, дата рождения и т. Д. c ...

Результат сканирования, показанный на изображении ниже, результат сканирования визитной карточки, он дает смешанный контент, как я могу извлечь все поля?

Здесь Только два метода для этого

Как мне отделить все поля, такие как имя, адрес электронной почты, номер и т. д. c ..


String format= rawResult.getBarcodeFormat().toString());
String Content=rawResult.getText());

enter image description here

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Сначала необходимо разбить содержимое по строкам, а затем решить, как обращаться с каждой строкой.

String[] lines = content.split("\n");
for (String line : lines){
    String[] typeAndValue = line.split("[:;]", 2);
    String type = typeAndValue[0];
    String value = typeAndValue[1];
    // ...do the voodoo that you do...
}
0 голосов
/ 29 февраля 2020

Вы можете использовать класс ResultParser, который включен в библиотеку zxing.

...
import com.google.zxing.Result;
import com.google.zxing.client.result.ParsedResult;
import com.google.zxing.client.result.ResultParser;
...
ParsedResult parsedResult = ResultParser.parseResult(rawResult);
switch (parsedResult.getType()) {
    case ADDRESSBOOK:
        AddressBookParsedResult addressResult = (AddressBookParsedResult) parsedResult;
        String[] addresses = addressResult.getAddresses();
        String[] phoneNumbers = addressResult.getPhoneNumbers();
        String[] emails = addressResult.getEmails();
        ...
...