J2ME: кроссплатформенный контакт с PIM
Я должен разработать решение, основанное на получении данных из адресной книги. Эти данные должны быть сохранены в текстовом формате. Я кодировал его с помощью Java™ Platform Micro Edition SDK 3.0.
public void getAddrBook() throws Exception{
addrStr= new StringBuffer("");
pim = PIM.getInstance();
try{
contactList = (ContactList)pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY);
itemList.removeAllElements();
int kk=0;
for (Enumeration items = contactList.items(); items.hasMoreElements();kk++) {
PIMItem item = (PIMItem)items.nextElement();
itemList.addElement(item);
if (kk>5) break;
//detailed enumeration of fields
int[] fields = item.getPIMList().getSupportedFields();
for (int i = 0; i < fields.length; i++) {
int field = fields[i];
int dataType = item.getPIMList().getFieldDataType(field);
String label = item.getPIMList().getFieldLabel(field);
//checking type of PIMItem
//can be STRING, BOOLEAN, STRING_ARRAY, DATE, INT, BINARY
if (dataType==PIMItem.STRING){
for (int j=0; j
}
//String sValue = item.getString(field, 0);
//System.out.println("["+label+"] - "+sValue);
//System.out.println("["+label+"] - ");//+sValue);
}
}
}
}
catch(PIMException e){
throw new Exception("Some errors with access to address book");
//TODO: check empty list and other
}
}
Но этот код работает только в эмуляторе и не работает в реальном телефоне. Как мне использовать PIM для сохранения данных в текстовом формате?
Также я разрешил доступ к контактной книге. Я думаю, что ошибка заключается в использовании структуры PIM. Мне нужен рабочий образец. У кого это есть? (:
1 ответ
JSR75 PIM API имеет встроенные функции безопасности, которые требуют цифровой подписи приложений доверенным источником. Подписать можно на таких сайтах, как GeoTrust (я использовал его для AT&T на Sony Ericsson W810).
В дополнение к подписанию приложения вам необходимо включить разрешения в файле JAD приложения. Следующие 6 разрешений возможны для PIM API.
javax.microedition.pim.ContactList.read
javax.microedition.pim.ContactList.write
javax.microedition.pim.EventList.read
javax.microedition.pim.EventList.write
javax.microedition.pim.ToDoList.read
javax.microedition.pim.ToDoList.write