高分 请熟悉getContentResolver的朋友帮我看一段异常代码!!

sis_ying 2010-09-15 09:56:04

是关于ContentProvider的,读取和插入手机上的通讯录信息,代码很好读懂的,关键是我不知道缺少啥东西了,跑不起来,代码如下:

先看ContentProviderDemo.java的内容:

package com.MyTest.ContentProviderDemo;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.Contacts.People;
import android.util.Log;
import android.widget.Toast;

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

InsertRecords("wangming","13921546287");
displayRecords();

}

private void InsertRecords(String name,String phoneNo)
{
ContentValues values = new ContentValues();
values.put(People.NAME, name);
Uri uri = getContentResolver().insert(People.CONTENT_URI, values); //错误1
Log.d("ANDROID", uri.toString());

Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);
values.clear();
values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);
values.put(People.NUMBER, phoneNo);
getContentResolver().insert(numberUri, values);
}

private void displayRecords()
{
String columns[] = new String[] {People.NAME,People.NUMBER};
Uri mContacts = People.CONTENT_URI;
Cursor cur = managedQuery(mContacts,
columns, //要返回的数据字段
null, //WHERE子句
null, //WHERE子句的参数
null); //ORDER子句


if (cur.moveToFirst())
{
String name = null;
String phoneNo = null;
do
{
name = cur.getString(cur.getColumnIndex(People.NAME));
phoneNo = cur.getString(cur.getColumnIndex(People.NUMBER));
Toast.makeText(this, name + " " + phoneNo, Toast.LENGTH_LONG).show();
}while(cur.moveToNext());
}

}
}

再贴Androidmanifest.xml的:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyTest.ContentProviderDemo"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.READ_CONTACT"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ContentProviderDemo"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>


</manifest>


我单步跟踪调试了下,发现"错误1"(上面代码标注处)处提示 "source not found",这段代码看似简单,但是问题到底出在哪里呢,请指点下 :)
...全文
311 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hero_Cat 2010-09-16
  • 打赏
  • 举报
回复
添加俩个权限即可。
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
纠结的木棉花 2010-09-16
  • 打赏
  • 举报
回复
源码未导入或者导入包!

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧