2011-10-18 39 views
0

我想插入他們的內容URI接觸Contacts.CONTENT_URI方法返回java.lang.IllegalArgumentException?

我只是在聲明下面的代碼插入valuse: -

public void runContact() 
{ 
    Uri u = Contacts.CONTENT_URI; 

    ContentValues initialValues = new ContentValues(); 
    initialValues.put("data1", "1234567890"); 
    initialValues.put("data2", "Emergency"); 
    initialValues.put("data3", "Number"); 
    cr.query(u, null, null, null, null); 
    Cursor cursor1 = getContentResolver().query(u, null, null, null, null); 
    if (cursor1.moveToFirst()) 
    { 
     do { 
      if((cursor1.getString(cursor1.getColumnIndex("address"))).equalsIgnoreCase("9953834074111")) 
      { 
       String data1 = cursor1.getString(cursor1.getColumnIndex("data1")); 
       String data2 = cursor1.getString(cursor1.getColumnIndex("data2")); 
       String data3 = cursor1.getString(cursor.getColumnIndex("data3")); 
       Log.v("data1",data1); 
       Log.v("data2",data2); 
       Log.v("data3", data3); 
      } 
     } while (cursor1.moveToNext()); 
    } 
} 

每當我調用此方法,它返回一個像這樣的例外 -

java.lang.IllegalArgumentException: URI: content://contacts, calling user: com.android.data, calling package:com.android.data

爲什麼會這樣?我在代碼中做錯了什麼?任何人指導我?

+0

http://www.google.com.pk/search?gcx=c&sourceid=chrome&ie=UTF-8&q=java.lang.IllegalArgumentException%3A+URI%3A +含量%3A%2F%2Fcontacts%2C +主叫用戶+%3A + com.android.data%2C +主叫+封裝%3Acom.android.data –

回答

0

嘗試像下面的代碼:

private void addContacts(){ 

    try 
    { 
     Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 

     if (c != null) { 
      while (c.moveToNext()) { 
       if (c.getString(c.getColumnIndex(Phone.DISPLAY_NAME)).equalsIgnoreCase(officeText.getText().toString())) { 
        Log.d("ContactUSActivity", "Number Exist"); 
        Toast.makeText(ContactUsActivity_2_0.this,getResources().getString(R.string.contact_already_exist),Toast.LENGTH_SHORT).show(); 
        return; 
       } 
      } 
     } 

     ArrayList<ContentProviderOperation> contentProviderArray = new ArrayList<ContentProviderOperation>(); 

     Builder builder = ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI); 
     builder.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE,null); 
     builder.withValue(ContactsContract.RawContacts.ACCOUNT_NAME,null); 

     ContentProviderOperation contentProvider = builder.build(); 
     contentProviderArray.add(contentProvider); 

     contentProviderArray.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,0) 
       .withValue(ContactsContract.Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE) 
       .withValue(StructuredName.DISPLAY_NAME, officeText.getText().toString()) 
       .build()); 

     contentProviderArray.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.TYPE, Phone.TYPE_MOBILE) 
       .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneText.getText().toString()) 
       .build()); 

     contentProviderArray.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
       .withValue(ContactsContract.Data.MIMETYPE,StructuredPostal.CONTENT_ITEM_TYPE) 
       .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY,addressText.getText().toString())    
       .build()); 

     /*contentProviderArray.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
       .withValue(ContactsContract.Data.MIMETYPE,StructuredPostal.CONTENT_ITEM_TYPE) 
       .withValue(ContactsContract.CommonDataKinds.StructuredPostal.,addressText.getText().toString())    
       .build()); */ 

     getContentResolver().applyBatch(ContactsContract.AUTHORITY, contentProviderArray); 

     Toast.makeText(ContactUsActivity_2_0.this,getResources().getString(R.string.contact_added),Toast.LENGTH_SHORT).show(); 
    } 
    catch (OperationApplicationException e) { 
     Toast.makeText(ContactUsActivity_2_0.this,getResources().getString(R.string.contact_failed_to_added),Toast.LENGTH_SHORT).show(); 
    } catch (RemoteException e) { 
     Toast.makeText(ContactUsActivity_2_0.this,getResources().getString(R.string.contact_failed_to_added),Toast.LENGTH_SHORT).show(); 
     e.printStackTrace(); 
    }  

}