2011-11-01 41 views
1

我想实现这里给出的示例Android代码: http://developer.android.com/reference/android/provider/ContactsContract.Contacts.Photo.html 抓住联系人的缩略图(顶部示例代码)。PHOTO无法解析或不是字段

但是,我不能获得超出错误: “PHOTO不能得到解决或不是场”

这是代码:

public InputStream openPhoto(long contactId) 
    { 
     Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId); 
     Uri photoUri = Uri.withAppendedPath(contactUri, Contacts.Photo.CONTENT_DIRECTORY); 
     Cursor cursor = getContentResolver().query(photoUri, 
      new String[] {Contacts.Photo.PHOTO}, null, null, null); 
     if (cursor == null) { 
      return null; 
     } 
     try { 
      if (cursor.moveToFirst()) { 
       byte[] data = cursor.getBlob(0); 
       if (data != null) { 
        return new ByteArrayInputStream(data); 
       } 
      } 
     } finally { 
      cursor.close(); 
     } 
     return null; 
    } 

我在下面列出的进口在类文件的顶部:

import java.io.ByteArrayInputStream; 
import java.io.InputStream; 
import java.lang.Object; 

import android.app.Activity; 
import android.content.ContentUris; 
import android.database.Cursor; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.ContactsContract.CommonDataKinds.Photo; 
import android.provider.ContactsContract.Contacts; 
import android.provider.ContactsContract.Data; 
import android.provider.ContactsContract.RawContacts; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Spinner; 
import android.widget.TextView; 

我相信,这是很简单的东西,像一个丢失的进口,但我很茫然。任何帮助将非常感激。

+0

代码似乎很好。你正在测试的设备/模拟器操作系统版本是什么? – Varun

+0

这在Eclipse中显示为错误,因此我无法运行它。 –

+1

事实上,我已将其追踪到API级别问题。当项目设置为Android 3(API 11)时,它将停止报告错误。从API级别5以来,ContactsContract.Contacts.Photo可用的Android网站上的声明似乎是不真实的。不幸的是,针对Android 3对我来说毫无用处。 –

回答

1

,你在Eclipse的目标应该是> = API 5.请确保你的目标是使用Android 2.0或以上,因为android.provider.ContactsContract.Contacts.Photo需要API大于或等于5

0

您应该使用

import android.provider.ContactsContract.Contacts; 

,而不是

import android.provider.Contacts;