java - 访问 Android 联系人时出现问题

标签 java android

我是 Android 开发新手。我正在尝试读取联系人并将其写入 Android 地址簿。

我尝试使用以下代码行将名称写入 android

public class SecondApp extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

ContentValues values = new ContentValues();
values.put(Contacts.People.NAME, "Rishabh");
ContentResolver cr = getContentResolver();
Uri uri = cr.insert(People.CONTENT_URI, values); 

但我收到“应用程序已意外停止。请重试”消息。

这有什么问题吗? 我如何访问 Android 的联系人?

<小时/>

嗨,MannyNS,感谢您的回复 我已授予您上面定义的写入权限。

但我仍然收到“应用程序意外停止。请重试”,即使当我启动 android 时,它给出消息“进程 android.process 媒体没有响应”。

你能建议我读取和写入 Android 联系人的整个过程吗? 您有任何示例代码吗?

谢谢 瑞沙卜

最佳答案

ViewContact.java: 注意:getContacts() 是用户定义的函数

package com.android.ViewContact;

import android.app.Activity;
import android.os.Bundle;
import android.database.*;
import android.net.Uri;
import android.provider.ContactsContract;
import android.widget.TextView;

public class ViewContactAct extends Activity 
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView contactview=(TextView)findViewById(R.id.contactview);
        Cursor mycursor=getContacts();
        while(mycursor.moveToNext())
        {
            String displayname=mycursor.getString(mycursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
            contactview.append("Name: ");
            contactview.append(displayname);
            contactview.append("\n");

        }
    }

    private Cursor getContacts()
    {
    Uri myuri=ContactsContract.Contacts.CONTENT_URI;
    String[] projection=new String[]
                                   {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME 
                                   };

    String selection= ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '"
    + ("1") + "'";
    String[] selectionArgs = null;
    String sortOrder = ContactsContract.Contacts.DISPLAY_NAME
    + " COLLATE LOCALIZED ASC";

    return managedQuery(myuri, projection, selection, selectionArgs,
    sortOrder);


    }

 }

关于java - 访问 Android 联系人时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1464072/

相关文章:

java - C 中的 System.nanoTime() 等价物

java - 我可以在单元测试时模拟特定的文件系统吗?

java - 如何为 WebSphere 上的远程 EJB 调用启用 Kerberos 身份验证?

android - 自定义适合的 Android 应用程序 : auto-update and always-on?

android - 具有 oAuth 和 Intent 处理的 Uber api 授权

java - 随机发生器自动随机

java - AsyncTask 工作时不显示进度条

java - 捆绑的 jar 不可执行 - jar2app

java异常: connection reset by peer: socket write error

android - 在 Android SDK 中找不到 gradle 包装器。可能需要更新您的 Android SDK