ContactScontract no funciona en los dispositivos Sony Xperia -- android campo con android-intent campo con contactscontract campo con sony-xperia camp Relacionados El problema

ContactsContract doesn't work on sony xperia devices


1
vote

problema

Español

Estoy usando ContactsContract para exportar contacto a la aplicación de contacto. Todo funciona bien en todos los demás dispositivos, pero en los teléfonos Sony Xperia, todos no puedo guardar los datos que he puesto en ArrayList<ContentValues> data . Mi código se ve así:

  ArrayList<ContentValues> data = new ArrayList<ContentValues>();      //Add photo     if (userImageBitmap != null) {         ContentValues photoRow = new ContentValues();         photoRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);         photoRow.put(ContactsContract.CommonDataKinds.Photo.PHOTO, bitmapToByteArray(userImageBitmap));         data.add(photoRow);     }       //Add phone home number     if (contact.getUserPhoneLandline() != null) {         ContentValues userLandlinePhoneRow = new ContentValues();         userLandlinePhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         userLandlinePhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getUserPhoneLandline());         userLandlinePhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME);         data.add(userLandlinePhoneRow);     }      //Add phone mobile number     if (contact.getUserPhoneMobile() != null) {         ContentValues userMobilePhoneRow = new ContentValues();         userMobilePhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         userMobilePhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getUserPhoneMobile());         userMobilePhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);         data.add(userMobilePhoneRow);     }      //Add user work fax number     if (contact.getCompanyFax() != null) {         ContentValues faxRow = new ContentValues();         faxRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         faxRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getCompanyFax());         faxRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK);         data.add(faxRow);     }      //Add user stationary work phone     if (contact.getCompanyPhoneLandline() != null) {         ContentValues stationaryWorkPhoneRow = new ContentValues();         stationaryWorkPhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         stationaryWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getCompanyPhoneLandline());         stationaryWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK);         data.add(stationaryWorkPhoneRow);     }      //Add user mobile work phone     if (contact.getCompanyPhoneMobile() != null) {         ContentValues mobileWorkPhoneRow = new ContentValues();         mobileWorkPhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         mobileWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getCompanyPhoneMobile());         mobileWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE);         data.add(mobileWorkPhoneRow);     }       //Add company email     if (contact.getUserEmail() != null) {         ContentValues emailHomeRow = new ContentValues();         emailHomeRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);         emailHomeRow.put(ContactsContract.CommonDataKinds.Email.ADDRESS, contact.getUserEmail());         emailHomeRow.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_HOME);         data.add(emailHomeRow);     }      if (contact.getCompanyEmail() != null) {         ContentValues emailWorkRow = new ContentValues();         emailWorkRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);         emailWorkRow.put(ContactsContract.CommonDataKinds.Email.ADDRESS, contact.getCompanyEmail());         emailWorkRow.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK);         data.add(emailWorkRow);     }      //Add company website     if (contact.getCompanyWebsite() != null) {         ContentValues websiteWorkRow = new ContentValues();         websiteWorkRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE);         websiteWorkRow.put(ContactsContract.CommonDataKinds.Website.URL, contact.getCompanyWebsite());         websiteWorkRow.put(ContactsContract.CommonDataKinds.Website.TYPE, ContactsContract.CommonDataKinds.Website.TYPE_WORK);         data.add(websiteWorkRow);     }       Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);     intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data);     //Add company info     if (contact.getCompanyName() != null) {         intent.putExtra(ContactsContract.Intents.Insert.COMPANY, contact.getCompanyName());     }     //Add title info     if (contact.getUserCorporateTitle() != null) {         intent.putExtra(ContactsContract.Intents.Insert.JOB_TITLE, contact.getUserCorporateTitle());     }     //Add address info     StringBuilder addressBuilder = new StringBuilder();     if (contact.getCompanyAddress() != null) {         addressBuilder.append(contact.getCompanyAddress());     }     if (contact.getCompanyPostcode() != null) {         addressBuilder.append(" ").append(contact.getCompanyPostcode());     }     if (contact.getCompanyCity() != null) {         addressBuilder.append(" ").append(contact.getCompanyCity());     }     if (contact.getCompanyCountry() != null) {         addressBuilder.append(" ").append(contact.getCompanyCountry());     }     intent.putExtra(ContactsContract.Intents.Insert.POSTAL, addressBuilder.toString());     intent.putExtra(ContactsContract.Intents.Insert.POSTAL_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK);     //Add contact name and surname     if (contact.getUserNameAndSurname() != null) {         intent.putExtra(ContactsContract.Intents.Insert.NAME, contact.getUserNameAndSurname());     }      //Start export contact activity     startActivityForResult(intent, CONTACT_SAVE_INTENT_REQUEST);   

Las cosas que estoy agregando directamente a la intención (nombre, compañía, etc.) funciona. Pero todo lo guardó a través de intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data); no se muestra en Sony Xperia (y me temo que no solo los dispositivos de la serie Xperia). ¿Alguna solución para arreglar?

Original en ingles

I'm using ContactsContract to export contact to contact app. Everything works fine on every other devices, but on Sony Xperia phones all I can't save data I've put into ArrayList<ContentValues> data. My code looks like this:

ArrayList<ContentValues> data = new ArrayList<ContentValues>();      //Add photo     if (userImageBitmap != null) {         ContentValues photoRow = new ContentValues();         photoRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);         photoRow.put(ContactsContract.CommonDataKinds.Photo.PHOTO, bitmapToByteArray(userImageBitmap));         data.add(photoRow);     }       //Add phone home number     if (contact.getUserPhoneLandline() != null) {         ContentValues userLandlinePhoneRow = new ContentValues();         userLandlinePhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         userLandlinePhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getUserPhoneLandline());         userLandlinePhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME);         data.add(userLandlinePhoneRow);     }      //Add phone mobile number     if (contact.getUserPhoneMobile() != null) {         ContentValues userMobilePhoneRow = new ContentValues();         userMobilePhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         userMobilePhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getUserPhoneMobile());         userMobilePhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);         data.add(userMobilePhoneRow);     }      //Add user work fax number     if (contact.getCompanyFax() != null) {         ContentValues faxRow = new ContentValues();         faxRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         faxRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getCompanyFax());         faxRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK);         data.add(faxRow);     }      //Add user stationary work phone     if (contact.getCompanyPhoneLandline() != null) {         ContentValues stationaryWorkPhoneRow = new ContentValues();         stationaryWorkPhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         stationaryWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getCompanyPhoneLandline());         stationaryWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK);         data.add(stationaryWorkPhoneRow);     }      //Add user mobile work phone     if (contact.getCompanyPhoneMobile() != null) {         ContentValues mobileWorkPhoneRow = new ContentValues();         mobileWorkPhoneRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);         mobileWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getCompanyPhoneMobile());         mobileWorkPhoneRow.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE);         data.add(mobileWorkPhoneRow);     }       //Add company email     if (contact.getUserEmail() != null) {         ContentValues emailHomeRow = new ContentValues();         emailHomeRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);         emailHomeRow.put(ContactsContract.CommonDataKinds.Email.ADDRESS, contact.getUserEmail());         emailHomeRow.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_HOME);         data.add(emailHomeRow);     }      if (contact.getCompanyEmail() != null) {         ContentValues emailWorkRow = new ContentValues();         emailWorkRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);         emailWorkRow.put(ContactsContract.CommonDataKinds.Email.ADDRESS, contact.getCompanyEmail());         emailWorkRow.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK);         data.add(emailWorkRow);     }      //Add company website     if (contact.getCompanyWebsite() != null) {         ContentValues websiteWorkRow = new ContentValues();         websiteWorkRow.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE);         websiteWorkRow.put(ContactsContract.CommonDataKinds.Website.URL, contact.getCompanyWebsite());         websiteWorkRow.put(ContactsContract.CommonDataKinds.Website.TYPE, ContactsContract.CommonDataKinds.Website.TYPE_WORK);         data.add(websiteWorkRow);     }       Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);     intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data);     //Add company info     if (contact.getCompanyName() != null) {         intent.putExtra(ContactsContract.Intents.Insert.COMPANY, contact.getCompanyName());     }     //Add title info     if (contact.getUserCorporateTitle() != null) {         intent.putExtra(ContactsContract.Intents.Insert.JOB_TITLE, contact.getUserCorporateTitle());     }     //Add address info     StringBuilder addressBuilder = new StringBuilder();     if (contact.getCompanyAddress() != null) {         addressBuilder.append(contact.getCompanyAddress());     }     if (contact.getCompanyPostcode() != null) {         addressBuilder.append(" ").append(contact.getCompanyPostcode());     }     if (contact.getCompanyCity() != null) {         addressBuilder.append(" ").append(contact.getCompanyCity());     }     if (contact.getCompanyCountry() != null) {         addressBuilder.append(" ").append(contact.getCompanyCountry());     }     intent.putExtra(ContactsContract.Intents.Insert.POSTAL, addressBuilder.toString());     intent.putExtra(ContactsContract.Intents.Insert.POSTAL_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK);     //Add contact name and surname     if (contact.getUserNameAndSurname() != null) {         intent.putExtra(ContactsContract.Intents.Insert.NAME, contact.getUserNameAndSurname());     }      //Start export contact activity     startActivityForResult(intent, CONTACT_SAVE_INTENT_REQUEST); 

Things I'm adding directly into Intent (name, company etc.) works. But everything saved through intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data); is not showing on Sony Xperia (and I'm afraid not only Xperia series) devices. Any solution to fix?

           
   
   

Lista de respuestas

-2
 
vote

Asegúrese de haber leído permiso de contactos de lectura. Tengo el mismo problema, al seleccionar el contacto.

  task18  
 

Make sure that you have given read contacts permission. I have same issue, when selecting contact.

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
 
 

Relacionados problema

1  Android WebView Javascript parece no funcionar en Sony Xperia  ( Android webview javascript seems not working on sony xperia ) 
He probado mi aplicación en HTC y MI2 y algunos dispositivos Samsung, y funcionó bien. Sin embargo, en los dispositivos Sony, no funciona en absoluto. Cód...

2  No se puede detectar Xperia C en ADT y Android Studio instalado en Windows 8.1 PC  ( Cannot detect xperia c in adt and android studio installed in windows 8 1 pc ) 
Tengo un Sony Xperia C2305 con la versión 4.2.2 de Android. El problema es que no puedo implementar, depurar y probar la aplicación de Android dentro de ella....

2  Compatibilidad con 3 tamaños de pantalla diferentes utilizando el calificador de ancho de pantalla disponible W <N> DP  ( Supporting 3 different screen sizes using available screen width qualifier wnd ) 
El interruptor automático de diseño funciona bien para 2 diseños para mis 2 dispositivos pero no el tercero. Tengo 2 teléfonos Android (mi suposición es que...

1  TextTospreech Android no funciona regularmente  ( Texttospeech android does not work regularily ) 
Estoy tratando de descubrir por qué mi aplicación no funciona como se esperaba. Para descubrir por qué, he creado un pequeño proyecto con una sola actividad d...

1  Aplicación Lamentablemente cerrada en Xperia P Mobile con API Nivel 14  ( Application unfortunately closed on xperia p mobile with api level 14 ) 
Cuando estoy depurando mi aplicación en el emulador, que es de API Nivel 14 (4.0), la aplicación está funcionando bien, pero cuando estoy depurando la misma a...

2  Dispositivo de Sony Xperia XA ADB Conductor no funciona  ( Sony device xperia xa adb driver not working ) 
Descargo el controlador XA en este enlace. http://developer.sonymobile.com/downloads/drivers/xperia-xa- Conductor / Pero no puedo ejecutar mi XA en ADB. ...

4  ¿Cómo desbloqueo la aplicación bloqueada con el comando ADB Shell PM Block?  ( How do i unblock the app blocked with adb shell pm block command ) 
Necesito habilitar una aplicación que bloqueé usando adb porque mi teléfono es la fuerza de cierre ahora. ¿Cómo reintible la aplicación? Usé el adb shell...

1  ADB no detectando mi Sony Xperia J  ( Adb not detecting my sony xperia j ) 
Estoy tratando de depurar mi aplicación de Android en Sony Xperia J pero el <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln...

0  locationManager.getLastKnownLocation () Siempre devuelve nulo en el nuevo rendimiento Xperia X  ( Locationmanager getlastknownlocation always returns null on new xperia x perfo ) 
Estoy creando una aplicación que necesita conocer la ubicación gruesa de los usuarios y en cualquier otro teléfono que he probado esta funciona bien, pero en ...

0  Xperia Z3 USB MODE DEBUG no funciona en Windows 7 Home Premium X64  ( Xperia z3 usb debug mode doesnt work at windows 7 home premium x64 ) 
Tengo un Xperia Z3 (D6603) e intenté conectarme en el modo de depuración a mi computadora con Windows 7 Home Premium X64 y no lo reconoce, pero sin modo de de...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos