Java 如何在Android中将条形码的地址类型。联系人信息转换为字符串类型?
我正在使用实现'com.google.android.gms:play services vision:19.0.0'库扫描条形码,当它扫描contactinfo二维码时,它会给出虚拟值。地址、URL、电子邮件和电话都给出了伪值,它并没有转换成字符串值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
@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;