android2.2 获取联系人信息报错

微笑浅浅 2011-06-29 09:23:44
哈喽各位,断断续续在学习android开发,今晚遇到一个问题,求解~
先贴下我的源码:

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

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

Button bt = (Button) findViewById(R.id.button1);

OnClickListener ocl = new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver contentResolver = getContentResolver();
Cursor curson = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if(curson.moveToFirst()){
int idColumn = curson.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = curson.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
do{
String contactId = curson.getString(idColumn);
String displayName = curson.getString(displayNameColumn);
Toast.makeText(ContactInfo.this, "联系人姓名:"+displayName, Toast.LENGTH_SHORT).show();
int phoneCount = curson.getInt(curson.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if(phoneCount>0){
Cursor phoneCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactId, null, null);
if(phoneCursor.moveToFirst()){
do{
String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(ContactInfo.this, "联系人号码为:"+phoneNumber, Toast.LENGTH_SHORT).show();
}while(phoneCursor.moveToNext());
}
}

}while(curson.moveToNext());
}
}
};

bt.setOnClickListener(ocl);
}
}

这个是Activity的代码,
在AndroidManifest.xml文件中的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wsy.contact"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permession.READ_CONTACTS"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ContactInfo"
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>

最后报错信息如下:
06-29 12:09:39.486: ERROR/DatabaseUtils(209): java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=368, uid=10036 requires android.permission.READ_CONTACTS
06-29 12:09:39.486: ERROR/DatabaseUtils(209): at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:271)

求助求助。详细说明一下吧。
我看见报错信息是说没有读取联系人的权限,但是我添加了啊。
下面这个错误是什么意思?
android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:271)
是不是还要添加什么权限的东东????

...全文
329 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jt_enjoying 2012-04-24
  • 打赏
  • 举报
回复
刚解决了,很无语,自己在AndroidManifest.xml中写不行,但是直接用permission权限添加之后就解决了
Jt_enjoying 2012-04-24
  • 打赏
  • 举报
回复
求解,现在我也遇见这个问题了
haiyanliu119 2012-02-07
  • 打赏
  • 举报
回复
奇怪了 permession 也会写错
java_running 2011-09-15
  • 打赏
  • 举报
回复
狂晕,写错了....
java_running 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iss0131 的回复:]
问题解决了,但是我也不晓得是怎么解决的,觉得好奇怪。
[/Quote]
怎么解决的,我也遇到了,抓狂了
微笑浅浅 2011-07-11
  • 打赏
  • 举报
回复
问题解决了,但是我也不晓得是怎么解决的,觉得好奇怪。
微笑浅浅 2011-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 haoyang_2010 的回复:]
<uses-permission android:name="android.permession.READ_CONTACTS"/>这个权限让人很郁闷,有时候明明写了就是一直报你没有注册这个权限。解决办法是改成<uses-permission android:name="android.permession.READ_CONTACTS"></user-permission>就可以了。是不是让人很蛋……
[/Quote]
哥们,不行啊,我这样加了还是报错。。。 我要崩溃了。
haoyang_2010 2011-07-01
  • 打赏
  • 举报
回复
<uses-permission android:name="android.permession.READ_CONTACTS"/>这个权限让人很郁闷,有时候明明写了就是一直报你没有注册这个权限。解决办法是改成<uses-permission android:name="android.permession.READ_CONTACTS"></user-permission>就可以了。是不是让人很蛋疼。

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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