相关疑难解决方法(0)

如何在android中启动"添加联系人"活动

你能告诉我如何在android中启动Add Contact'活动吗?谢谢.

android

36
推荐指数
7
解决办法
4万
查看次数

在Android 2.2中插入联系人

我正在尝试插入新的RawContact联系人,但是RawContact当我通过"联系人"或电话簿查看联系人时,添加的内容无法显示.据我了解,如果我们创建了一个RawContact并且没有与之关联的联系人,那么将自动插入联系人.我得到一个有效的值,rawContactId并没有抛出异常,所以我假设插入成功.我做错了什么或者我错过了什么?我正在使用开发人员网站的代码示例,只需将其粘贴到此处:

 ContentValues values = new ContentValues();
 values.put(RawContacts.ACCOUNT_TYPE, accountType); 
 values.put(RawContacts.ACCOUNT_NAME, accountName);
 Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values); 
 long rawContactId = ContentUris.parseId(rawContactUri); 

 values.clear(); 
 values.put(Data.RAW_CONTACT_ID, rawContactId); 
 values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); 
 values.put(StructuredName.DISPLAY_NAME, "Mike Sullivan"); 
 getContentResolver().insert(Data.CONTENT_URI, values); 
Run Code Online (Sandbox Code Playgroud)

android android-contacts

27
推荐指数
2
解决办法
2万
查看次数

通过Intent with Image插入联系人(ContactsContract)(照片)

有许多Q&A线程,但没有一个提供真正的答案,或者我找不到它.

为了确保你,我先问了一下:

那么有谁知道如何使用Intent(如示例代码中)并插入一个Photo,它是在Bitmap中保存的?

示例代码我现在用它来启动对话意图,让用户在保存之前插入或取消并可能编辑字段:

// PrivateContactClass c;
// Bitmap photo;
Intent inOrUp = new Intent(ContactsContract.Intents.Insert.ACTION, ContactsContract.Contacts.CONTENT_URI);
inOrUp.setType(ContactsContract.Contacts.CONTENT_TYPE);
inOrUp.putExtra(ContactsContract.Intents.Insert.NAME, ModelUtils.formatName(c));
inOrUp.putExtra(ContactsContract.Intents.Insert.PHONE, getPrimaryPhone());
inOrUp.putExtra(ContactsContract.Intents.Insert.TERTIARY_PHONE, c.getMobile());
inOrUp.putExtra(ContactsContract.Intents.Insert.EMAIL, c.getMail());
inOrUp.putExtra(ContactsContract.Intents.Insert.JOB_TITLE, c.getFunction());
inOrUp.putExtra(ContactsContract.Intents.Insert.NOTES, getSummary());
inOrUp.putExtra(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
startActivity(inOrUp);
Run Code Online (Sandbox Code Playgroud)

由于Julien的回答,我找到了解决方案

不仅仅使用intent,因为我怀疑我们可以传递Data ContentProvider保存的图像ID,或者直接在Intent中传递Bitmap.

从上面的代码扩展

将startActivityForResult与常量请求代码一起使用

// must be declared in class-context
private static final int CONTACT_SAVE_INTENT_REQUEST = 1;
...
startActivityForResult(inOrUp,CONTACT_SAVE_INTENT_REQUEST);
Run Code Online (Sandbox Code Playgroud)

添加Intent启动的活动的处理结果

@Override
protected void onActivityResult(int requestCode, int resultCode,
        Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent); …
Run Code Online (Sandbox Code Playgroud)

android android-intent contactscontract android-image android-contentprovider

13
推荐指数
1
解决办法
6154
查看次数

如何使用意图和活动在Xamarin Android中插入与城市,街道,邮政编码,国家/地区的联系方式?

我需要使用Xamarin Forms / Android的意图以编程方式打开android Contacts应用程序。当出现“添加新联系人”活动/屏幕时,我想用以下字段预填充它:

  • 名称(正在填充)
  • 电话(正在填充)
  • 街道(未填充)
  • 城市(未填充)
  • 状态(不填充)
  • 国家(未看到此字段,未填充)

如上所述,某些屏幕正在填充,但地址字段却没有。这是Xamarin C#Android代码/服务,用于触发打开Android“添加联系人”屏幕的活动:

 public void AddContact(string name, string[] phoneNumbers, string streetAddress, string city, string state, string postalCode, CountryValues countrycode)
    {
        // get current activity
        var activity = CrossCurrentActivity.Current.Activity;

        // create add contact intent
        var intent = new Intent(Intent.ActionInsert);
        intent.SetType(ContactsContract.Contacts.ContentType);

        // add field for contact name
        intent.PutExtra(ContactsContract.Intents.Insert.Name, name);

        // Adding more than on phone number if available
        foreach (string numbers in phoneNumbers)
        {
            intent.PutExtra(ContactsContract.Intents.Insert.Phone, numbers);
        }

        // pre-populate address fields
        intent.PutExtra(ContactsContract.CommonDataKinds.StructuredPostal.Street, …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin.android xamarin xamarin.forms

7
推荐指数
1
解决办法
197
查看次数