Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何从我们的应用程序将地址存储到本机联系人应用程序中_Android_Contactscontract - Fatal编程技术网

Android:如何从我们的应用程序将地址存储到本机联系人应用程序中

Android:如何从我们的应用程序将地址存储到本机联系人应用程序中,android,contactscontract,Android,Contactscontract,在android native contact应用程序中,一些手机有一个名为地址的地址字段。有些手机有多个字段,如街道、城市、州、国家、邮政编码等。 我只是想知道如何将地址从我们的应用程序存储到本机应用程序中。以及如何从本机应用程序中检索地址。它的副本可能会对您有所帮助 String DisplayName = "XYZ"; String MobileNumber = "123456"; String HomeNumber = "1111"; St

在android native contact应用程序中,一些手机有一个名为
地址的地址字段。有些手机有多个字段,如街道、城市、州、国家、邮政编码等。

我只是想知道如何将地址从我们的应用程序存储到本机应用程序中。以及如何从本机应用程序中检索
地址。

它的副本可能会对您有所帮助

     String DisplayName = "XYZ";
     String MobileNumber = "123456";
     String HomeNumber = "1111";
         String WorkNumber = "2222";
      String emailID = "email@nomail.com";
     String company = "bad";
   String jobTitle = "abcd";


ArrayList < ContentProviderOperation > ops = new ArrayList <     

ContentProviderOperation > ();

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

 //------------------------------------------------------ Names
  if (DisplayName != null) {
  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,
 DisplayName).build());
 }

 //------------------------------------------------------ Mobile Number                     
 if (MobileNumber != null) {
 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, MobileNumber)
     .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
 ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
     .build());
 }

//------------------------------------------------------ Home Numbers
if (HomeNumber != null) {    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, HomeNumber)
     .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
 ContactsContract.CommonDataKinds.Phone.TYPE_HOME)
     .build());
}
 //------------------------------------------------------ Work Numbers
 if (WorkNumber != null) {     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, WorkNumber)
     .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
 ContactsContract.CommonDataKinds.Phone.TYPE_WORK)
     .build());
  }

//------------------------------------------------------ Email
  if (emailID != null) {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, emailID)
     .withValue(ContactsContract.CommonDataKinds.Email.TYPE,   
ContactsContract.CommonDataKinds.Email.TYPE_WORK)
     .build());
}//------------------------------------------------------ Organization
 if (!company.equals("") && !jobTitle.equals("")) { ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
     .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
     .withValue(ContactsContract.Data.MIMETYPE,
 ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE)
     .withValue(ContactsContract.CommonDataKinds.Organization.COMPANY,    
 company) .withValue(ContactsContract.CommonDataKinds.Organization.TYPE,   
  ContactsContract.CommonDataKinds.Organization.TYPE_WORK)
     .withValue(ContactsContract.CommonDataKinds.Organization.TITLE,     
 jobTitle)
     .withValue(ContactsContract.CommonDataKinds.Organization.TYPE,  
  ContactsContract.CommonDataKinds.Organization.TYPE_WORK)
     .build());
 }

// Asking the Contact provider to create a new contact                 
  try {
 getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
  } catch (Exception e) {
 e.printStackTrace();
 Toast.makeText(myContext, "Exception: " + e.getMessage(),    
 Toast.LENGTH_SHORT).show();
} 
String DisplayName=“XYZ”;
字符串MobileNumber=“123456”;
字符串HomeNumber=“1111”;
字符串WorkNumber=“2222”;
字符串emailID=”email@nomail.com";
字符串company=“bad”;
字符串jobTitle=“abcd”;
ArrayListops=新建ArrayList<
ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(
Contacts contract.raw contacts.CONTENT\u URI)
.withValue(contacts contract.raw contacts.ACCOUNT_TYPE,null)
.withValue(contacts contract.raw contacts.ACCOUNT\u NAME,null)
.build());
//------------------------------------------------------名字
if(DisplayName!=null){
ops.add(ContentProviderOperation.newInsert(
contacts contract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
ContactsContract.CommonDataTypes.StructuredName.CONTENT\u ITEM\u TYPE)
.有价值(
Contacts contract.CommonDataTypes.StructuredName.DISPLAY\u NAME,
DisplayName.build());
}
//------------------------------------------------------手机号码
if(MobileNumber!=null){
添加(ContentProviderOperation)。
newInsert(ContactsContract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
Contacts contract.CommonDataTypes.Phone.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.commonDataTypes.Phone.NUMBER,MobileNumber)
.带值(contacts contract.commondatatypes.Phone.TYPE、,
Contacts contract.CommonDataTypes.Phone.TYPE\手机)
.build());
}
//------------------------------------------------------家庭号码
if(HomeNumber!=null){ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\uURI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
Contacts contract.CommonDataTypes.Phone.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.CommonDataTypes.Phone.NUMBER、HomeNumber)
.带值(contacts contract.commondatatypes.Phone.TYPE、,
Contacts contract.CommonDataTypes.Phone.TYPE\u HOME)
.build());
}
//------------------------------------------------------工作编号
if(WorkNumber!=null){ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\uURI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
Contacts contract.CommonDataTypes.Phone.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.commondatatypes.Phone.NUMBER、WorkNumber)
.带值(contacts contract.commondatatypes.Phone.TYPE、,
Contacts contract.CommonDataTypes.Phone.TYPE\u WORK)
.build());
}
//------------------------------------------------------电子邮件
if(emailID!=null){ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\uURI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
ContactsContract.CommonDataTypes.Email.CONTENT\u ITEM\u TYPE)
.withValue(ContactsContract.CommonDataTypes.Email.DATA,emailID)
.withValue(contacts contract.commondatatypes.Email.TYPE,
Contacts contract.CommonDataTypes.Email.TYPE\u工作)
.build());
}//------------------------------------------------------组织机构
如果(!company.equals(“”)&!jobTitle.equals(“”){ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.带值(contacts contract.Data.MIMETYPE,
ContactsContract.CommonDataTypes.Organization.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.commondatatypes.Organization.COMPANY、,
公司)。带有值(contacts contract.commondatatypes.Organization.TYPE,
ContactsContract.CommonDataTypes.Organization.TYPE\u工作)
.withValue(contacts contract.commonDataTypes.Organization.TITLE、,
(职位名称)
.withValue(contacts contract.CommonDataTypes.Organization.TYPE,
ContactsContract.CommonDataTypes.Organization.TYPE\u工作)
.build());
}
//要求联系人提供商创建新联系人
试一试{
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
}捕获(例外e){
e、 printStackTrace();
Toast.makeText(myContext,“异常:+e.getMessage(),
吐司。长度(短)。show();
} 

我也有同样的问题。经过很长时间,我得到了一个解决方案,因此您可以使用以下代码:

public boolean addContact() {
    if (Build.VERSION.SDK_INT >= 23) {
        if (haveContactPermission()) {
            ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
            int rawContactInsertIndex = ops.size();

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

            ops.add(ContentProviderOperation
                    .newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, TextViewUserFullName.getText()) // Name of the person
                    .build());


            ops.add(ContentProviderOperation
                    .newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(
                            ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, homephone) // Number of the person
                    .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME).build()); // Type of mobile number

            ops.add(ContentProviderOperation
                    .newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(
                            ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, mobilephone) // Number of the person
                    .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE).build()); // Type of mobile number

            ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, getBitmapFromURL(image))
                    .build());

            ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.Email.ADDRESS, email)
                    .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_HOME)
                    .build());


            ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                    .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                    .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, TextViewWifeName.getText()).build());

            try {
                ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
                return true;
            } catch (RemoteException e) {
                Toast.makeText(ContactInfoZone.this, "" + e.toString(), Toast.LENGTH_SHORT).show();
                // error
                return false;
            } catch (OperationApplicationException e) {
                Toast.makeText(ContactInfoZone.this, "" + e.toString(), Toast.LENGTH_SHORT).show();
                // error
                return false;
            }
        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_CONTACTS},
                    PERMISSION_CONTACT_NUMBER);
            return false;
        }

    } else {


        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        int rawContactInsertIndex = ops.size();

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

        ops.add(ContentProviderOperation
                .newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, TextViewUserFullName.getText()) // Name of the person
                .build());



        ops.add(ContentProviderOperation
                .newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(
                        ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, homephone) // Number of the person
                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_HOME).build()); // Type of mobile number

        ops.add(ContentProviderOperation
                .newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(
                        ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, mobilephone) // Number of the person
                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE).build()); // Type of mobile number

        ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, getBitmapFromURL(image))
                .build());

        ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Email.ADDRESS, email)
                .withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_HOME)
                .build());


        ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, TextViewWifeName.getText()).build());

        try {
            ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
            return true;
        } catch (RemoteException e) {
            Toast.makeText(ContactInfoZone.this, "" + e.toString(), Toast.LENGTH_SHORT).show();
            // error
            return false;
        } catch (OperationApplicationException e) {
            Toast.makeText(ContactInfoZone.this, "" + e.toString(), Toast.LENGTH_SHORT).show();
            // error
            return false;
        }
    }
}
public boolean addContact(){
如果(Build.VERSION.SDK_INT>=23){
如果(haveContactPermission()){
ArrayList ops=新的ArrayList();
int rawContactInsertIndex=ops.size();
添加(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT\u URI)
.withValue(contacts contract.raw contacts.ACCOUNT_TYPE,null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME,null).build());
添加操作(ContentProviderOperation
.newInsert(contacts合同.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,RAW contacts insertindex)
.withValue(contacts contract.Data.MIMETYPE、contacts contract.commonDataTypes.StructuredName.CONTENT\u ITEM\u TYPE)
.withValue(ContactsContract.CommonDataTypes.StructuredName.DISPLAY_NAME,TextViewUserFullName.getText())//姓名
.build());
补充行动(续)