Добавление нового контакта

1

Я хочу добавить новый контакт, когда я отлаживаю i, я не нашел ошибку, но все же я не могу добавить новый контакт. пожалуйста, сделайте обзор моего кода и проведите меня.

мой код:

public final class contactadder extends Activity 
{
private EditText ETCname;
private EditText ETCPhNo;
private EditText ETCEmailId;
private Button btnSave;
String ss;
public static final String TAG = "ContactsAdder";


@Override 
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);    
    setContentView(R.layout.contact_adder);
    ETCname=(EditText)findViewById(R.id.contactNameEditText);
    ETCPhNo=(EditText)findViewById(R.id.contactPhoneEditText);
    ETCEmailId=(EditText)findViewById(R.id.contactEmailEditText);
    btnSave=(Button)findViewById(R.id.contactSaveButton);
    btnSave.setOnClickListener(new View.OnClickListener()
{
   public void onClick(View v)
  {
          String name=ETCname.getText().toString();
      String phone=ETCPhNo.getText().toString();
      String email=ETCEmailId.getText().toString();
     ArrayList<ContentProviderOperation> op=new ArrayList<ContentProviderOperation>();
                    /*  ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
                    .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, mSelectedAccount.getType()) 
                    .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, mSelectedAccount.getName()) 
            .build()); */
     op.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());
     op.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,phone).build());
      Log.i(TAG,"Creating contact: " + name);        
        try
        {
            getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
            launchContactManager();
        }catch (Exception e) 
        {
            Context ctx = getApplicationContext();  
            CharSequence txt = "Contact creation failed, check logs.";      
            int duration = Toast.LENGTH_SHORT;  
            Toast toast = Toast.makeText(ctx, txt, duration); 
            toast.show();  
            //log exception
            Log.e(TAG, "Exceptoin encoutered while inserting contact: " + e);        
        }
                  }
 }
Теги:

1 ответ

0
Лучший ответ

Беглый взгляд на ваш код показывает ошибку в 5-й строке функции onClick:

ArrayList<ContentProviderOperation> op=new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)

Вы объявляете ArrayList "op", а затем ваша следующая строка ссылается на "ops"

После исправления, logcat содержит список ошибок? Просто заметил, что в вашем комментарии не было ошибок.

Является ли ваш manifest.xml правильно объявлением разрешений? Вам нужно объявить <uses-permission android:name="android.permission.WRITE_CONTACTS" />.

  • 0
    извините, на самом деле я прокомментировал это, поскольку я не знаю, что написать в месте "mSelectedAccount.getType ())" ...
  • 0
    @ Неха Обновлено ...
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню