为联系人选取器获取gumber时发生异常

问题描述:

在我的程序中执行联系人选取的代码时,游标正在检索值的行导致异常。我无法弄清楚为什么会发生异常。任何人都可以帮助我。我的代码如下。为联系人选取器获取gumber时发生异常

public void onActivityResult(int requestcode, int resultcode, Intent data){ 
    super.onActivityResult(requestcode, resultcode, data); 

    switch(requestcode){ 
     case (CONTACT_PICKER_RESULT): 
       if(resultcode == Activity.RESULT_OK) 
       { 
        Cursor cursor = null; 
        String phno =""; 
        try 
        { 
         Uri my_uri = data.getData(); 
         String id = my_uri.getLastPathSegment(); 
         Toast.makeText(getApplicationContext(), "id="+id, Toast.LENGTH_SHORT).show(); 

         int phnoidx = 0; 

           //Exception occured in the next line 
         cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID+"=?", new String[] { id }, null);//--> Exception occurs here 
         phnoidx = cursor.getColumnIndex(Phone.DATA); 
         if(cursor.moveToFirst()) 
         { 
          while(cursor.isAfterLast() == false) 
          { 
           phno = cursor.getString(phnoidx); 
           Toast.makeText(getApplicationContext(), "no="+phno, Toast.LENGTH_SHORT).show(); 
           cursor.moveToNext(); 
          } 
         } 
        } 
        catch(Exception e) 
        { 
         Toast.makeText(getApplicationContext(), "Error occured.", Toast.LENGTH_SHORT).show(); 
         //exception handle 
        } 
        finally{ 
         if(cursor != null) 
          cursor.close(); 
        } 
        if(phoneno.getText().equals("") || !addphone_enable) 
         phoneno.setText(phno); 
        else if(addphone_enable) 
         addphno.setText(phno); 
       } 
       break; 
    } 
    activitytype = "main"; 

} 

这是我收到的例外:

02-15 12:44:55.594: E/DatabaseUtils(187): java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/data/phones from pid=336, uid=10036 requires android.permission.READ_CONTACTS 

谢谢!

+0

有什么异常?堆栈跟踪将有助于... – assylias 2013-02-14 10:09:24

+0

提供更多信息并告诉我们您尝试了些什么。没有人会为你做调试。 – KBart 2013-02-14 10:29:08

+0

02-15 12:44:55.594:E/DatabaseUtils(187):java.lang.SecurityException:Permission Denial:reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/data/phones从pid = 336,uid = 10036需要android.permission.READ_CONTACTS 这是我得到的异常 – Saans 2013-02-15 07:17:59

添加以下代码行:

<uses-permission android:name="android.permission.READ_CONTACTS"/> 

刚刚结束清单标记之前。

删除了提及此权限的任何其他代码,停止获取此错误。