2017-07-17 6 views
0

Ich versuche, einen neuen Kontakt mit diesem Code hinzuzufügen:Hinzufügen eines neuen Kontaktes (Android)

try{ 
      ArrayList<ContentProviderOperation> ops = new ArrayList<android.content.ContentProviderOperation>(); 

      if(!name.equals("")) { 
       ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
         .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
         .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
         .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name) 
         .build()); 
      } 

      if(!number.equals("")){ 
       ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
         .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
         .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) 
         .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, number) 
         .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) 
         .build()); 
      } 

      if(!email.equals("")){ 
       ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
         .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
         .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) 
         .withValue(ContactsContract.CommonDataKinds.Email.DATA, email) 
         .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK) 
         .build()); 
      } 

      context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
     } 
    } catch (Exception e) { 
     Toast.makeText(context,e.toString(),Toast.LENGTH_SHORT).show(); 
    } 

I angegeben auch die WRITE_CONTACTS Berechtigung für das Manifest und ich es im laufenden Betrieb angefordert.

Doch obwohl es nicht zurück irgendein Fehler wird der Kontakt nicht hinzugefügt ...

Was bin ich schlecht gemacht?

+1

Wenn Ihr Android-Version größer als lolipop Sie brauchen, um die Laufzeit-Berechtigungen umfassen. Oder Sie können Berechtigungen wie folgt erteilen: ** Einstellungen> Anwendungen> Wählen Sie Ihre App> sehen Sie nach unten für Berechtigungen> wechseln Sie die Berechtigung *** –

+0

Berechtigungen sind auch in der Laufzeit gewährt ... –

Antwort

0

Ich habe endlich die Antwort gefunden.

Es ist erforderlich, um diese Abfrage zu schließen, bevor Sie versuchen, alles zu speichern:

ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) 
        .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) 
        .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null) 
        .build()); 
Verwandte Themen