我是 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/