連絡先の写真を画面に表示したいので、このコードの操作方法を教えてください。getPhoto() メソッドから null を取得しています。私はたくさん検索しましたが、Contact Interface からのこのコード以外には何も得られませんでした。しかし、それは私にとってはうまくいきません.....!!!
public class PhotoExample {
private Contact _contact;
public PhotoExample(Contact contact) throws PIMException {
ContactList contactList = (ContactList)
PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
_contact = contactList.createContact();
/*_contact = contact;*/
}
public void setPhoto() throws IOException {
byte[] photo = getSamplePhoto();
byte[] photoEncoded = Base64OutputStream.encode(photo, 0, photo.length, false, false);
if (_contact.countValues(Contact.PHOTO) > 0) {
_contact.setBinary(Contact.PHOTO, 0, PIMItem.ATTR_NONE, photoEncoded, 0, photo.length);
} else {
_contact.addBinary(Contact.PHOTO, PIMItem.ATTR_NONE, photoEncoded, 0, photo.length);
}
}
public byte[] getPhoto() throws IOException {
if (_contact.countValues(Contact.PHOTO) > 0) {
byte[] photoEncoded = _contact.getBinary(Contact.PHOTO, 0);
return Base64InputStream.decode(photoEncoded, 0, photoEncoded.length);
} else {
return null;
}
}
private static byte[] getSamplePhoto() {
return null;
// return the raw bytes of the photo to use
}
/*public static void main(String[] args) throws Throwable {
PhotoExample example = new PhotoExample();
example.setPhoto();
example.getPhoto();
}*/
}
上記のコードを次のように使用しています: -
try {
_photo = new PhotoExample(_contact);
b = _photo.getPhoto();
} catch (PIMException e) {
System.out.println(e+"===>");
e.printStackTrace();
} catch (IOException e) {
System.out.println(e+"===>");
e.printStackTrace();
}