▼MIDP2.0メモ▼
端末内のPIMデータにアクセスする


端末内のPIMデータにアクセスするプログラム。



プログラム
PIMEx.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

//端末内のPIMデータにアクセスする(本体)
public class PIMEx extends MIDlet {
    static MIDlet  current;

    //コンストラクタ
    public PIMEx() {
        current=this;
        Display.getDisplay(this).setCurrent(new PIMForm());
    }

    //アプリの開始
    public void startApp() {
    }

    //アプリの一時停止
    public void pauseApp() {
    }

    //アプリの終了
    public void destroyApp(boolean flag) {
    }
}


PIMForm.java
import javax.microedition.lcdui.*;
import javax.microedition.pim.*;
import java.util.*;

//端末内のPIMデータにアクセスする(フォーム)
class PIMForm extends Form
    implements ItemCommandListener {

    //コンストラクタ
    public PIMForm(){
        super("PIMEx");

        //ボタン
        addButton("アドレス帳に情報を追加",0);
        addButton("アドレス帳から情報を取得",1);
    }

    //ボタンの追加
    void addButton(String label,int priority) {
        StringItem button=new StringItem("",label,Item.BUTTON);
        button.setLayout(Item.LAYOUT_2|Item.LAYOUT_RIGHT);
        button.setDefaultCommand(new Command("",Command.SCREEN,priority));
        button.setItemCommandListener(this);
        append(button);
    }

    //アイテムイベント
    public void commandAction(Command c,Item item)  {
        //アドレス帳に情報を追加
        if (c.getPriority()==0) {
            Thread thread=new Thread() {
                public void run() {addAddress();}
            };
            thread.start();
        }
        //アドレス帳から情報を取得
        if (c.getPriority()==1) {
            Thread thread=new Thread() {
                public void run() {getAddress();}
            };
            thread.start();
        }
    }

    //アドレスの追加
    void addAddress() {
        try {
            //コンタクトの取得
            PIM pim=PIM.getInstance();
            ContactList list=(ContactList)pim.openPIMList(
                PIM.CONTACT_LIST,PIM.READ_WRITE);
            Contact contact=list.createContact();

            //名前の設定
            String[] name=new String[list.stringArraySize(Contact.NAME)];
            name[Contact.NAME_GIVEN] ="うのみ";
            name[Contact.NAME_FAMILY]="伊佐坂";
            contact.addStringArray(Contact.NAME,Contact.ATTR_NONE,name);

            //アドレスの設定
            String[] addr=new String[list.stringArraySize(Contact.ADDR)];
            addr[Contact.ADDR_STREET]    ="1-1-1";
            addr[Contact.ADDR_LOCALITY]  ="東京都千代田区";
            addr[Contact.ADDR_COUNTRY]   ="日本";
            addr[Contact.ADDR_POSTALCODE]="111-1111";
            contact.addStringArray(Contact.ADDR,Contact.ATTR_NONE,addr);

            //設定を反映
            contact.commit();
        } catch (Exception e) {
        }
    }

    //アドレスの取得
    void getAddress() {
        try {
            //コンタクト郡の取得
            PIM pim=PIM.getInstance();
            ContactList list=(ContactList)pim.openPIMList(
                PIM.CONTACT_LIST,PIM.READ_ONLY);
            Enumeration enm=list.items();
            if (enm==null) return;

            //文字列アイテムの削除
            while (size()>2) delete(2);

            //コンタクトから情報の取得
            Contact    contact;
            String[]   name;
            String     firstName;
            String     lastName;
            StringItem item;
            while (enm.hasMoreElements()) {
                contact=(Contact)enm.nextElement();
                //名前の取得
                name=contact.getStringArray(Contact.NAME,0);
                firstName=name[Contact.NAME_GIVEN];
                lastName =name[Contact.NAME_FAMILY];
                //文字列アイテムの追加
                item=new StringItem("",lastName+" "+firstName);
                item.setLayout(Item.LAYOUT_2|Item.LAYOUT_NEWLINE_AFTER);
                append(item);
            }
        } catch (Exception e) {
        }
    }
}



−戻る−