Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中将条形码的地址类型。联系人信息转换为字符串类型?_Java_Android_Computer Vision - Fatal编程技术网

Java 如何在Android中将条形码的地址类型。联系人信息转换为字符串类型?

Java 如何在Android中将条形码的地址类型。联系人信息转换为字符串类型?,java,android,computer-vision,Java,Android,Computer Vision,我正在使用实现'com.google.android.gms:play services vision:19.0.0'库扫描条形码,当它扫描contactinfo二维码时,它会给出虚拟值。地址、URL、电子邮件和电话都给出了伪值,它并没有转换成字符串值 @Override public void receiveDetections(Detector.Detections<Barcode> detections) { final SparseArray<Barcode&g

我正在使用实现'com.google.android.gms:play services vision:19.0.0'库扫描条形码,当它扫描contactinfo二维码时,它会给出虚拟值。地址、URL、电子邮件和电话都给出了伪值,它并没有转换成字符串值

@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;
            }
        }

    }
}
@覆盖
公共空隙接收检测(检测器。检测){
最终SparseArray条形码=检测。getDetectedItems();
如果(条形码大小()!=0){
对于(int index=0;index
请检查此文档

这些值是数组,因此无法使用toString()函数

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

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

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

希望对您有所帮助。

这是您通过条形码或二维码获取联系信息的方式

                        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;

执行此操作时会发生什么情况?[com.google.android.gms.vision.barcode.barcode]$Phone@4e1dd42][com.google.android.gms.vision.barcode.barcode]$Email@8a1853][com.google.android.gms.vision.barcode.barcode]$Address@61878d]它给出了诸如名称、标题和组织之类的值这些值是正确的,但电话,电子邮件和地址会产生问题
                        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;