国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用platformRequest()自動更新MIDlet套件

2019-11-18 16:00:59
字體:
來源:轉載
供稿:網友

MIDP 2.0提供了一系列的新特性,其中一個就是調用平臺的應用。例如可以調用WAP瀏覽器訪問特定的網址,也可以調用電話應用程序呼叫某個號碼。上述兩個功能都可以使用MIDlet類的platformRequest()方法實現,platformRequest()接受一個String類型的參數url,如果是呼叫電話號碼則url的形式為tel:13810011001。如果是調用WAP瀏覽器則url的形式類似于http://www.j2medev.com/wap.wml。

本文介紹如何使用platformRequest()方法自動更新MIDlet套件,在MIDP的文檔中說明。如果url的形式為一個指定的MIDlet套件,可以是JAD文件,也可以是jar文件。例如http://www.j2medev.com/helloworld.jad。這個時候,此請求會被認為是安裝MIDlet套件來對待,這樣用戶可以控制安裝的過程,就像我們直接從WAP瀏覽器輸入地址安裝MIDlet套件一樣。如果請求的MIDlet套件是當前正在運行的應用程序的升級版,則當前的程序需要先退出,然后執行更新操作。

如果想讓發布的MIDlet套件具備自動升級的功能,那么需要提供一個服務器端程序,服務器端程序能夠檢測是不是有更新版本的應用程序下載,并且可以將這個結果告訴給客戶端。通常這樣的服務器端可以實現為Web應用程序,用servlet和MIDlet通信。當用戶運行MIDlet的時候,MIDlet首先連接指定的服務器獲取信息,如果沒有新版軟件則正常運行,如果有新版本的軟件則是用platformRequest()方法請求安裝應用程序。

                     if (update == NEED_UPDATE) {

                            try {

                                   platformRequest("http://www.j2medev.com/wap/autoupdate.jar");

                                   destroyApp(true);

                                   notifyDestroyed();

                            } catch (ConnectionNotFoundException ex) {

                                   ex.PRintStackTrace();


                            }

                           

                     }else{

                            //do something else

                     }

這里我們在代碼中執行destroyApp(true),讓MIDlet套件主動退出。如果想做的更為專業,可以在檢測到有新版本的軟件的時候,顯示一個對話框讓用戶選擇是否自動更新,根據用戶的選擇執行相關的操作。下面的代碼UpdateMIDlet可以用于演示此項功能。

/**

 * author mingjava

 * Created on 2006-3-8

 */

package com.j2medev.autoupdate;

 

import java.util.Random;

import javax.microedition.io.ConnectionNotFoundException;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Form;

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

 

public class UpdateMIDlet extends MIDlet {

 

       public static int NEED_UPDATE = 0;


 

       public static int NO_UPDATE = 1;

 

       private Display display = null;

 

       protected void startApp() throws MIDletStateChangeException {

              if (display == null) {

                     display = Display.getDisplay(this);

                     int update = (new Random().nextInt() >>> 1) % 2;

                     if (update == NEED_UPDATE) {

                            try {

                                   platformRequest("http://www.j2medev.com/wap/autoupdate.jar");

                                   destroyApp(true);

                                   notifyDestroyed();

                            } catch (ConnectionNotFoundException ex) {

                                   ex.printStackTrace();

                            }


                           

                     }else if(update == NO_UPDATE){

                            Form form = new Form("Test");

                            form.append("No update is needed");

                            display.setCurrent(form);

                     }

              }

       }

 

       protected void pauseApp() {

 

       }

 

       protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

 

       }

 

}

       為了模擬是否有升級軟件的可能,我們在startApp()中隨機生成一個隨機數update。如果update等于0則代表有升級版本,如果update等于1則代表不需要升級。為了簡單起見,這里我們沒有編寫聯網檢測升級版本的程序。此程序在Nokia 7610上測試通過,可以自動升級MIDlet套件。

(出處:http://m.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奇台县| 汉寿县| 临潭县| 凤台县| 两当县| 蓝田县| 伊川县| 和硕县| 甘孜县| 景宁| 奈曼旗| 霸州市| 双辽市| 淳安县| 大庆市| 盐城市| 浦东新区| 云南省| 梅州市| 黑水县| 古交市| 报价| 宜黄县| 安康市| 嫩江县| 佛冈县| 怀化市| 会同县| 讷河市| 吉水县| 怀宁县| 应用必备| 白银市| 东安县| 正镶白旗| 莱芜市| 乐陵市| 肇州县| 兴义市| 富平县| 渭南市|