【问题标题】:How to convert Address type of Barcode.CONTACT_INFO To String Type in Android?如何将 Barcode.CONTACT_INFO 的地址类型转换为 Android 中的字符串类型?
【发布时间】:2020-02-05 13:04:54
【问题描述】:

我正在使用实现 'com.google.android.gms:play-services-vision:19.0.0' 库来扫描条形码,当它扫描contactinfo QR码时,它会给出虚拟值。 Address、URL、Email 和 Phone 给出了虚拟值,它没有转换成 String 值。

@Override
public void receiveDetections(Detector.Detections<Barcode> detections) {
    final SparseArray<Barcode> barcodes = detections.getDetectedItems();
    if (barcodes.size() != 0) {

        for (int index = 0; index < barcodes.size(); index++) {
            Barcode code = barcodes.valueAt(index);
            int type = barcodes.valueAt(index).valueFormat;
            switch (type) {
                case Barcode.CONTACT_INFO:
                    String name = code.contactInfo.name.formattedName;
                    String title = code.contactInfo.title;
                    String organization = code.contactInfo.organization;
                    String address = code.contactInfo.addresses.toString();
                    String phone = code.contactInfo.phones.toString();
                    String emails = code.contactInfo.emails.toString();
                    String urls = code.contactInfo.urls.toString();

                    break;
            }
        }

    }
}

【问题讨论】:

  • 执行此操作会发生什么?
  • [com.google.android.gms.vission.barcode.Barcode$Phone@4e1dd42] [com.google.android.gms.vission.barcode.Barcode$Email@8a1853] [com.google .android.gms.vission.barcode.Barcode$Address@61878d] 它给出了这样的值
  • 姓名、职务和组织这些值是正确的,但电话、电子邮件和地址会产生问题

标签: java android computer-vision


【解决方案1】:

请查看此文档。

https://developers.google.com/android/reference/com/google/android/gms/vision/barcode/Barcode.ContactInfo

public Address[] addresses  
public Email[]   emails
public Phone[]   phones 
public String[]  urls

这些值是数组,所以不能使用 toString() 函数。

您可以检查类(地址、电子邮件和电话)以从该文档中获取相应的值。

例如,要获取第一个电话号码,

Barcode.Phone[] phones = code.contactInfo.phones;
if (phones.length > 1) {
    Barcode.Phone phone = phones[0];
    String phoneNumber = phone.number;
}

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您可以通过这种方式从条形码或二维码中获取联系信息。

                            String mName ="", mTitle ="", mOrganization="";
                            String mAddress = "", mPhone = "", mEmail = "", mUrl ="";
    
                            mName = code.contactInfo.name.formattedName;
                            mTitle = code.contactInfo.title;
                            mOrganization = code.contactInfo.organization;
                           
                            Barcode.Address[] addresses = code.contactInfo.addresses;
                            if (addresses.length >= 1) {
                                Barcode.Address address = addresses[0];
                                mAddress = address.addressLines[0];
                            }
    
                            Barcode.Phone[] phones = code.contactInfo.phones;
                            if (phones.length >=1) {
                                Barcode.Phone phone = phones[0];
                                mPhone = phone.number;
                            }
    
                            Barcode.Email[] emails  = code.contactInfo.emails;
                            if (emails.length >= 1) {
                                Barcode.Email email = emails[0];
                                mEmail = email.address;
                            }
    
    
                            String[] urls  = code.contactInfo.urls;
                            if (urls.length >= 1) {
                                mUrl = urls[0];
                                
                            }
    
                            String contact_info = mName+"\n"+mTitle+"\n"+mOrganization+"\n"+mAddress+"\n"+
                                    mPhone+"\n"+mEmail+"\n"+mUrl;
    

    【讨论】:

      猜你喜欢
      • 2022-04-26
      • 2021-12-19
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2022-08-18
      • 2022-01-25
      相关资源
      最近更新 更多