package com.wandster.ph;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.pim.Contact;
import javax.microedition.pim.ContactList;
import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMException;
import javax.microedition.pim.PIMItem;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.MainScreen;
public class Ph extends UiApplication {
public static void main(String[] args) {
Ph p = new Ph();
p.enterEventDispatcher();
}
public Ph() {
this.pushScreen(new PhScreen());
}
}
final class PhScreen extends MainScreen {
PhScreen() {
setTitle("phone number to txt");
add(new RichTextField("export phone number!", Field.NON_FOCUSABLE));
bf = new ButtonField("export", ButtonField.CONSUME_CLICK);
//add event to export button
BfListener bfListener = new BfListener();
bf.setChangeListener(bfListener);
//添加菜单项
this.addMenuItem(viewItem);
this.add(bf);
}
private ButtonField bf;
//export button event
private class BfListener implements FieldChangeListener {
public void fieldChanged(Field field, int context) {
if (field == bf) {
Dialog.inform("this will export phone number!");
writeContact();
}
}
}
//读取联系人信息
public void writeContact() {
try {
ContactList contactList = (ContactList) PIM.getInstance()
.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY);
Enumeration contacts = contactList.items();
StringBuffer sb = new StringBuffer();
while (contacts.hasMoreElements()) {
Contact c = (Contact) contacts.nextElement();
//联系人名
String[] nameValues = c.getStringArray(Contact.NAME, 0);
String firstName = nameValues[Contact.NAME_GIVEN];
String lastName = nameValues[Contact.NAME_FAMILY];
String name = "";
if (firstName != null)
name += firstName;
if (lastName != null)
name += lastName;
//联系人电话
int phoneNumbers = c.countValues(Contact.TEL);
String telNumber = "";
if (phoneNumbers > 0) {
for (int i = 0; i < phoneNumbers; i++) {
telNumber = c.getString(Contact.TEL, i);
}
}
sb.append(name + " " + telNumber + "\r\n");
}
writeFile(sb.toString());//输出到文件
Dialog.inform("Export complete!");
} catch (PIMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Dialog.inform("error! " + e.getReason());
}
}
/*
* public void fileroot() { String root = null; Enumeration e =
* FileSystemRegistry.listRoots(); while (e.hasMoreElements()) { root =
* (String) e.nextElement(); if (root.equalsIgnoreCase("sdcard/")) {
* writeFile("/"); } } }
*/
//write file to SDCard
public void writeFile(String strs) {
FileConnection fconn = null;
try {
fconn = (FileConnection) (Connector.open(
"file:///SDCard/phone.txt", Connector.READ_WRITE));
if (!fconn.exists()) {
fconn.create();
}
DataOutputStream dos = new DataOutputStream(fconn
.openOutputStream());
dos.write(strs.getBytes("utf-8"));
dos.flush();
dos.close();
dos = null;
fconn.close();
fconn = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
String s = e.getMessage();
Dialog.inform(s);
return;
}
}
private MenuItem viewItem = new MenuItem("View Message", 100, 10) {
public void run() {
Dialog.inform("this is a test");
}
};
public void close() {
Dialog.alert("Goodbye!");
super.close();
}
}
评论1
最新资源