使用getContentResolver().query()获得联系人信息,程序出错

Marco_Lee 2011-09-16 09:27:43
public class ListViewActivity extends Activity {
LinearLayout myLinearLayout;
ListView myListView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myLinearLayout = new LinearLayout(this);
myListView = new ListView(this);
myLinearLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
myLinearLayout.addView(myListView, param);
setContentView(myLinearLayout);
Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
startManagingCursor(cur);
ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cur, new String[] {
PhoneLookup.DISPLAY_NAME, PhoneLookup.NUMBER},new int[] {
android.R.id.text1, android.R.id.text2});
myListView.setAdapter(adapter);
myListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
DisplayToast("滚动到第" + Long.toString(arg0.getSelectedItemId()) + "项");
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
//没有选中
}

});
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
DisplayToast("选中了第" + Integer.toString(arg2+1) + "项");
}

});
}
public void DisplayToast(String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}
}


logcat提示 Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);出错了,程序无法启动,求教高手



09-16 21:17:26.296: ERROR/AndroidRuntime(1396): FATAL EXCEPTION: main
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lee.android/com.lee.android.ListViewActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1396, uid=10000 requires android.permission.READ_CONTACTS
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.os.Looper.loop(Looper.java:130)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.main(ActivityThread.java:3703)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at java.lang.reflect.Method.invokeNative(Native Method)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at java.lang.reflect.Method.invoke(Method.java:507)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at dalvik.system.NativeStart.main(Native Method)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1396, uid=10000 requires android.permission.READ_CONTACTS
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.os.Parcel.readException(Parcel.java:1322)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:330)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.content.ContentResolver.query(ContentResolver.java:262)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at com.lee.android.ListViewActivity.onCreate(ListViewActivity.java:29)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1628)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): ... 11 more
...全文
1825 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Marco_Lee 2011-09-22
  • 打赏
  • 举报
回复
原来之前权限粗心写错了~ 应该是api的问题了~ 谢谢[Quote=引用 6 楼 hyman2011 的回复:]

首先,先检查一下你的权限添加的位置是否正确;
联系人问题android在2.0之前和之后的api是不一样的,就是你query的uri。
[/Quote]
hyman2011 2011-09-22
  • 打赏
  • 举报
回复
首先,先检查一下你的权限添加的位置是否正确;
联系人问题android在2.0之前和之后的api是不一样的,就是你query的uri。
nulls 2011-09-22
  • 打赏
  • 举报
回复
android.permission.READ_CONTACTS
Log里写的很清楚
浪子_ 2011-09-22
  • 打赏
  • 举报
回复
权限问题,楼主仔细看看吧
Marco_Lee 2011-09-17
  • 打赏
  • 举报
回复
我加了啊。。。。[Quote=引用 2 楼 liyunyu66 的回复:]

java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1396, uid=10000 requires android.permissi……
[/Quote]
liyunyu66 2011-09-17
  • 打赏
  • 举报
回复
java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1396, uid=10000 requires android.permission.READ_CONTACTS
你没加权限吧,需要在androidmanifest中添加读取权限
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
Marco_Lee 2011-09-17
  • 打赏
  • 举报
回复
怎么无人问津。。。。

80,493

社区成员

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

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