<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    讓變化成為計劃的一部分

    歡迎大家探討本Blog涉及的所有軟件課題。我的Google Talk ID:zhengyun(at)gmail.com。

    我最希望軟件帶給用戶的感受是:美好的體驗、舒適感、簡約、干凈...

    posts - 32, comments - 8, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2005年11月16日

    鄭昀@ultrapower

    產品名稱

    產品版本

    Keyword: Mobile RSS Bloglines

    BloglinesMobileBuddy

    1.0.12

     [J2ME] BloglinesMobileBuddy

    (Bloglines手機伴侶)

    開源說明

     

    我的資源:

    http://www.cnblogs.com/Files/zhengyun_ustc/BloglinesMobile-src.rar

    雖然還有這樣那樣的問題,但是作為一個Alpha版本的j2me軟件,能夠在Nokia S60系列手機上運行,這樣已經足夠了,所以先放出源代碼,希望拋磚引玉吸引有志者繼續在此基礎上修改。

    http://www.cnblogs.com/Files/zhengyun_ustc/flickrBuddy.rar

    服務器端的web service已經能夠發布alpha版本了,請在下載。這是一個tomcat+axis搭建環境下的java web service

    提請注意的是,由于本源代碼中包含了bluegammon/jmobilecore/henson.midp.Float/Zohar Melamed’s Jbloglines等開放源代碼庫,所以我也遵循GPL協議,請看后面的“開源版權聲明”。

    http://www.cnblogs.com/Files/zhengyun_ustc/BloglinesMobile-deployed.rar

    Nokia S60系列安裝程序,用數據線傳BloglinesMobile.jar到您的手機上即可安裝。

    測試體驗

    我在Nokia 7610上測試過了,整體視覺效果還是不錯的,而且登錄和閱讀速度還是蠻快的。昨晚上,在手機上竟然踏踏實實把按摩乳的《讓小強真正來一次歷險》和《正面新聞》共計七千七百余字的網志看完了,呵呵,不得不佩服Nokia7610的內存夠大的,竟然還能夠流暢地顯示。

     bloglinesbuddy.myfeeds bloglinesbuddy.getitems

    為什么要為Bloglines制作無線閱讀軟件呢?

    200510月,Web 2.0 Conference最后一天的會議上,Ask Jeeves的一位副董事長公布了旗下Bloglines網站的一些最新數據(PPT格式),這些數據也可以從另一個方面體現出目前RSS的使用狀況。

    - 有超過135萬條Feed至少有一個訂閱者。

    - 14,363Feed的訂閱者超過50人。

    - 437Feed的訂閱者在1000人以上。

    - 60Feed5000人以上訂閱。

    - Slashdot是唯一訂閱者超過50000人的Feed

    Bloglines是目前使用最為廣泛的在線RSS閱讀服務之一,這么多的訂閱者,他們也許需要在無線條件下閱讀Bloglines提供的服務,所以我制作了這款手機程序。

     

    Bloglines 是什么

    Bloglines 是一個全球最搶眼的基于Webblog訂閱跟蹤服務之一,它允許個人對 weblog 和新聞的各種訂閱保持跟蹤,這些訂閱內容以 Really Simple SyndicationRSS)和 Atom 提供的形式交付。

    我每天第一件事情就是打開bloglines,看看我訂閱的21個資料庫有沒有更新他們的blog21個資料庫,是不是少了點?我也曾經看過其他人有過成千上萬個資料庫,不過,我感覺其中80%blog其實不值得逐日跟蹤。

     bloglines.web.keso

    開源版權聲明

    由于我這個版本的 Bloglines Mobile Buddy手機伴侶 也是基于bluegammon/jmobilecore/henson.midp.Float/Zohar Melamed’s Jbloglines基礎上加入我的智慧整合而來的,所以決定遵照GPL協議的大意開放源代碼,您可以自由傳播和修改,在遵照下面的約束條件的前提下:

     

    條件1

    只要你在Bloglines Mobile Buddy每一副本上明顯和恰當地出版版權聲明,保持此許可證的聲明和沒有擔保的聲明完整無損,并和程序一起給每個其他的程序接受者一份許可證的副本,你就可以用任何媒體復制和發布你收到的原始的程序的源代碼。你可以為轉讓副本的實際行動收取一定費用,但必須事先得到鄭昀的同意。

     

    條件2

    你可以修改Bloglines Mobile Buddy程序的一個或幾個副本或程序的任何部分,以此形成基于程序的作品。只要你同時滿足下面的所有條件,你就可以按前面第一款的要求復制和發布這一經過修改的程序或作品。

     

    a

    你必須在修改的文件中附有明確的說明:你修改了這一文件及具體的修改日期。

     

    b

    你必須使你發布或出版的作品(它包含程序的全部或一部分,或包含由程序的全部或部分衍生的作品)允許第三方作為整體按許可證條款免費使用。

     

    c

    如果修改的程序在運行時以交互方式讀取命令,你必須使它在開始進入常規的交互使用方式時打印或顯示聲明:包括適當的版權聲明和沒有擔保的聲明(或者你提供擔保的聲明);用戶可以按此許可證條款重新發布程序的說明;并告訴用戶如何看到這一許可證的副本。(例外的情況:如果原始程序以交互方式工作,它并不打印這樣的聲明,你的基于程序的作品也就不用打印聲明)。

     

    這樣,您就可以自由使用并傳播本源代碼,當然請您原封不動地保留原作者信息。

     

    編寫者

    日期

    關鍵詞

    鄭昀@ultrapower

    2005-12-27

    Mobile

    RSS READER ONLINE

    BLOGLINES

    Java J2ME

    posted @ 2005-12-27 15:34 讓變化成為計劃的一部分 閱讀(626) | 評論 (2)編輯 收藏

    我的個人觀點,不知道對不對(http://community.csdn.net/Expert/topic/4477/4477765.xml?temp=.6836969):
    你所說的KEY_SOFTKEY1,KEY_SOFTKEY2,KEY_SOFTKEY3這幾個定義,應該是Nokia UI API中的FullCanvas定義的吧?
    而MIDP2.0的Canvas規范并沒有定義這幾個。

    請看:
    《Series 60 Developer Platform 2.0: Specification v1.0》,
    Page 77:
    Left soft key, -6, "Left soft key" or left soft-key symbol
    Right soft key, -7, "Right soft key" or right soft-key symbol
    Middle soft key, -5, "Select", "Middle soft key" or similar symbol
    所以我們的Nokia、Samsung和SonyEricsson專有程序中會這么定義:
        /**
         * Key code for the FIRE game action.
         */
        public static final int KEY_FIRE = -5;

        /**
         * Key code for left soft key
         */
        public static final int KEY_SOFT_LEFT = -6;

        /**
         * Key code for right soft key
         */
        public static final int KEY_SOFT_RIGHT = -7;
    在摩托羅拉專有的程序中則這么定義:
        /**
         * Key code for the FIRE game action.
         */
        public static final int KEY_FIRE = 20;

        /**
         * Key code for left soft key
         */
        public static final int KEY_SOFT_LEFT = 21;

        /**
         * Key code for right soft key
         */
        public static final int KEY_SOFT_RIGHT = 22;
    在西門子程序中則這么定義:
        /**
         * Key code for the FIRE game action.
         */
        public static final int KEY_FIRE = -26;

        /**
         * Key code for left soft key
         */
        public static final int KEY_SOFT_LEFT = -1;

        /**
         * Key code for right soft key
         */
        public static final int KEY_SOFT_RIGHT = -4;

    Softkeys并沒有被包含在MIDP2.0的規范中,所以,
    如果你非要在手機上使用這幾個Softkeys,那么請注意手機的差異,你可能需要針對不同款手機分別定義了。

    以下對撥打電話的手機按鍵的定義是在nokia、三星和Motorola(v80/220/300/400/500/600, e398, c650):

    以下內容為程序代碼:

    /**
         * Key code for PHONE_ON key (green button)
         */
        public static final int KEY_PHONE_ON = -10;

    以下這種定義是在西門子:

    以下內容為程序代碼:

    /**
         * Key code for PHONE_ON key (green button)
         */
        public static final int KEY_PHONE_ON = -11;

    以下這種定義是在Motorola platform phones iDEN, T280, T72x, v6x

    以下內容為程序代碼:

    /**
         * Key code for PHONE_ON key (green button)
         */
        public static final int KEY_PHONE_ON = -14;

    posted @ 2005-12-26 15:16 讓變化成為計劃的一部分 閱讀(677) | 評論 (0)編輯 收藏

    源代碼下載:服務器端的web service已經能夠發布alpha版本了,請在http://www.cnblogs.com/Files/zhengyun_ustc/flickrBuddy.rar下載。這是一個tomcat+axis搭建環境下的java web service。

    2005年12月25日晚上:
    今日完成的開發,是點擊前面列出的blog訂閱源標題,則請求bloglines檢索這個特定訂閱的博客登錄條目。
    以彈出式對話框展示文章內容。
    下面演示此j2me軟件:

    第一步,輸入你的bloglines登錄電子郵件地址:

    bloglines.inputusermail ,

    然后輸入你的登錄密碼:

    bloglines.inputpassword 

    然后手機將去bloglines站點檢索你所訂閱的blog源,并將標題和未讀blog條目數顯示在界面上,如下所示:

    bloglinesbuddy.myfeeds

    點擊其中一個blog標題,你可以看到該blog的你尚未讀過的blog文章集合,如下所示:
    bloglinesbuddy.getitems 

    與之對照的blog文章如下所示:
    bloglines.web.solidot 

    更多圖片:
    BloglinesBuddy.mainmenu   
    BloglinesBuddy.about  

    posted @ 2005-12-25 22:55 讓變化成為計劃的一部分 閱讀(405) | 評論 (0)編輯 收藏

    2005年12月25日:
    制作完成了flickrBuddy web service,可以完成對bloglines api的方便調用。手機客戶端則使用kSoap來訪
    問這個flickrBuddy web service來獲得用戶的bloglines訂閱源。
    首先,可以看到你的“my feeds”中列出的blog訂閱源標題以及未讀條目的數目。比如:
    Engadget Simplified Chinese[16]
    旁觀者的奇妙冒險[0]
    未完成 - Incomplete[0]
    王建碩[0]
    車東[Blog^2][0]

    bloglinesbuddy.myfeeds 

    它是利用了http://www.bloglines.com/myblogs這個世界上最大的blog訂閱源服務提供的服務,請看它的界面:

    bloglines.webinterface 

    下面是我的“關于”,呵呵,
    BloglinesBuddy.about

    下一步完成:
    點擊“Engadget Simplified Chinese[16]”的標題菜單,就可以看到未讀的條目全文。

    posted @ 2005-12-25 16:56 讓變化成為計劃的一部分 閱讀(400) | 評論 (0)編輯 收藏

    第一,
    下面的代碼在索愛機型上可以運行,在nokia s60模擬器上也可以運行,唯獨不能在nokia 7610上運行,程序會自動退出:

    new Thread(this, "Menu thread").start();


    必須改寫為

    Thread thread;
    (thread = new Thread(this)).start();

    方能在真機上運行。

    這種程序自動退出的問題,有時候是因為你根本猜想不到的代碼導致的,這時候只能通過二分排除法(不斷地注釋代碼來縮小代碼范圍)來判定了。

    第二,再譬如說,
    你的代碼中有對double的使用,比如這種代碼:

    double alpha = (double)Math.abs(i - m_canvasWidth / 2) /
                               (double)m_canvasWidth;


    但是,注意一點,CLDC1.1才開始支持Math,“Math functions in java.lang package is available only since CLDC-1.1”。所以,如果你一旦在CLDC1.0的nokia手機上使用,那么,即使你用了try/catch捕獲異常,程序也會自動退出。

    這時候你也不要驚詫。

    第三,
    Thread thread;
          (thread = new Thread(this)).start();代碼可以運行。
    但是Thread thread;
          (thread = new Thread(this, "Menu thread")).start();
    就會導致Nokia真機立即退出。
    同樣,
    Thread thread;
              (thread = new Thread(new Runnable()
              {
                public void run()
                {
                  m_inputHandler.handleStringInput(input);
                }
              }, "inputHandler")).start();
    也會導致立即退出。
    以上雖然模擬器可以運行,但是真機是不允許的。

    posted @ 2005-12-16 14:34 讓變化成為計劃的一部分 閱讀(831) | 評論 (0)編輯 收藏

    Midletinfo

    探索手機

    javaME系統信息的實用工具

    摘要:

    本文檔幫你了解實用工具midletinfo,簡單地說,它發掘了javaME所能得到的大多數系統信息,對試圖將自己的程序在不同款手機上運行的開發者會很有幫助的。

    1背景

     

    1.1. 下載

    下載鏈接:http://jmobilecore.sourceforge.net/midletinfo/index.html

    官方介紹:

    Midletinfo展示以下信息:

    u       系統信息:內存以及j2me屬性;

    u       屏幕信息:分辨率、色彩支持、繪制屬性和按鍵屬性;

    u       字體;

    u       畫布上按鍵對應的值(很有用!)

    u       所支持的連接協議類型;

     

    這些信息對于開發者而言,都非常有用。比如說很多開發者遇到的問題是,按鍵對應的數值,每款手機都不太一致,用midletinfo就很容易幫你確定了。

    源代碼在此:http://jmobilecore.sourceforge.net/midletinfo/src

     

    1.2. 系統信息

    如圖所示:
     systeminfo

    看,編碼類型、cldc類型、midp類型都知道了。

     

    1.3. 屏幕信息

    如圖所示:
    screeninfo 

    是否支持雙緩沖、屏幕大小都知道了。

     

    1.4. 按鍵信息

    如圖所示:

    keyinfo 
    按下哪個鍵,屏幕上就繪制出這個鍵對應的值。

     

    1.5. 連接協議信息

    如圖所示:

    connectioninfo 
    看,手機當前是否支持
    http/tcp/udp/file/sms/cbs/ssl都可以立即知道。

     

    鄭昀@ultrapower

    名稱

    版本

    Keyword: midlet information j2me tool

    midletinfo

    0.9.1

     

    posted @ 2005-12-07 15:30 讓變化成為計劃的一部分 閱讀(626) | 評論 (2)編輯 收藏

         摘要: 另外,還有一篇必讀的文章《Debugging MIDP HTTP Requests,http://developers.sun.com/techtopics/mobility/midp/articles/httpdebug/》,也給出了一份源代碼,http://developers.sun.com/techtopics/mobility/midp/articles/httpdebug/src/ht...  閱讀全文

    posted @ 2005-12-01 18:19 讓變化成為計劃的一部分 閱讀(838) | 評論 (0)編輯 收藏

    不知道大家有否看過“反編譯的西伯利亞攻擊源代碼”的代碼,okay,不知道它的權威性有多大,不過西伯利亞攻擊這個游戲還是有名氣的,也許值得一看。
    它的主引擎就是聲明一個靜態的圖片數組:
    class MainEngine extends FullCanvas
        
    implements Runnable
    {
    。。。。
        
    static Image imgs[];
        
    public static void initImage() {
          
    if (!isLoadImg) {
            
    if(imgs == null)
                imgs 
    = new Image[GameData.imgName.length];
            
    for (int i = 0; i < GameData.imgName.length - 1; i++{
              
    if (imgs[i] == null{
                
    try {
                  imgs[i] 
    = Image.createImage("/" + GameData.imgName[i]);
                }

                
    catch (Exception ex) {
                  System.out.println(
    "i:"+i);
                  ex.printStackTrace();
                }

              }

              percent 
    = (i * 100/ (GameData.imgName.length - 1);
              Sib.engine.flushGraphic();
            }

            isLoadImg 
    = true;
          }

        }

    而且我搜索了它的5個java文件,它在什么情況下調用System.gc()呢?
    下面三種情況:
    用戶返回游戲時(可能之前去接聽電話了?或者去設置里改參數了?);
    用戶選完飛機后,這可能是一個選項菜單,選飛機時所用到的資源可能以后在游戲中沒必要用,所以及時回收一下;
    顯示過關界面時,這時候有卡的現象,歡喜的用戶也不會在意的。

    除此之外就沒有了。

    Nokia 的文檔Known Issues In The Nokia 6600 MIDP 2.0 Implementation v1.7說:
    2.15.1 Garbage collecting
    Description
    Calling the System.gc() method results in extreme slowness and jamming. In Monty 1.0 VM, garbage
    collection is different and every time System.gc is called, the entire memory is really cleared.
    This is an extremely slow process!
    Solution
    Do not call the System.gc method at all, or call the System.gc() garbage collecting method only
    in non-time-critical situations, such as screen transitions, state transitions, pause states,
    etc. If the System.gc() method is used, it is recommended to add a short delay (~20-50 ms) after
    the method call to ensure the sufficient time for the garbage collection, as in the following

    example
    System.gc();
    Thread.sleep(delay); delay = 20-50 ms

    posted @ 2005-11-25 16:40 讓變化成為計劃的一部分 閱讀(1135) | 評論 (1)編輯 收藏

    [JavaME]手機上如何繪制半透明圖片

    windcao提供了一個CreateAlphaImage方法

    Windcao提供的CreateAlphaImage的意思是這樣的“如果需要半透明可以先在image上畫,然后把這個Image弄成半透明的。最后將Image繪到Canvas上就OK了”。

     他的處理函數如下所示:

    public static Image CreateAlphaImage(int Alphalike 0x88000000,Image src) {
            
    int w,h;
            w
    =src.getWidth();
            h
    =src.getHeight();        
            
    int len=wh;
            
    int srcRgb[]=new int[len];
            
    int dscRgb[]=new int[len];

            
    try{
                src.getRGB(srcRgb,
    0,w,0,0,w,h);
            }

            
    catch(Exception ex){
                ex.printStackTrace();
            }


            
    for (int i = 0; i  len; i++{
             
                    dscRgb[i] 
    = srcRgb[i]+Alpha;
            }

            Image result
    =Image.createRGBImage(dscRgb,w,h,true);
            
    return result;
        }

     

    我在工程中用了,有效果,好像也不需要對原始的Image src有什么特殊要求。

    translucenceCustomItem 
     

    可以與

    directlypaintCustomItem  

    做一下對比。

    后者沒有將圖片作CreateAlphaImage處理。所以繪制的圖片覆蓋了原來的文字。

    我是在一個CustomItem擴展類中使用這個半透明圖片的,代碼如下所示:



    public class StringKeyItem extends CustomItem{
    。。。
          
    private static Image m_imageCommand =
        CommandResources.getImage(CommandResources.IMG_COMMAND);
    。。。
          
    public StringKeyItem( 
           GUIController control,
           
    int inIndent, String inText )
           
    {
    。。。
        m_imageCommand 
    = CreateAlphaImage(0x88000000,m_imageCommand);
           }


    。。。
        
    public void paint( Graphics g, int w, int h )
            
    {
    。。。
               
    // draw the text: word-wrap is an exercise for the reader
                g.drawString( text, 
                    indent 
    * INDENT_MARGIN + FONT_HEIGHT, 0, g.TOP | g.LEFT );
                
        
    /*
         * 繪制一個半透明的前景圖片,剛好就貼在StringKeyItem的文字上,還可以顯示底色以及文字
         
    */

        g.drawImage(m_imageCommand, 
                indent 
    * INDENT_MARGIN + FONT_HEIGHT, 0, g.TOP | g.LEFT);
            }

     

    實踐效果還是不錯的。

    感謝windcao的代碼共享和思路提供!

    posted @ 2005-11-23 16:46 讓變化成為計劃的一部分 閱讀(1176) | 評論 (0)編輯 收藏

    為什么會在HttpConnection訪問遠端服務器時,得到了ArrayIndexOutofBoundException異常呢?
    有這么一種可能:
    遠端服務器雖然完整地響應了數據,但是卻存在兩種隱患:服務器沒有正確地設置HTTP_CONTENT_LENGTH頭域,
    或者設置了但是在傳輸過程中,可能遠端服務器和手機之間的某一代理服務器人為修改,導致
    在手機端,代碼仍試圖按照HTTP_CONTENT_LENGTH的錯誤數值-1去檢索數據,所以得到了這個異常。

    解決辦法:
    一是確定服務器端正確地改寫了HTTP_CONTENT_LENGTH頭域;
    二是針對手機端拿到了HTTP_CONTENT_LENGTH的錯誤數值-1,作相應處理。

    posted @ 2005-11-23 15:32 讓變化成為計劃的一部分 閱讀(718) | 評論 (0)編輯 收藏

         摘要: [JavaME]手機同時播放兩個音樂 探討二 摘要: 本文檔以及后續文檔試圖一步一步地探討如何在手機上同時播放兩個聲音文件,譬如一個是背景音樂,一個是按鍵觸發的游戲音效。請慢慢看下去,我們盡量糅合進各方匯集的一些經驗。 1探討適合Nokia的同步播放方法 摘要:本章 簡單描述如何在NokiaS60系列手機同時播放兩個音樂。   1.1. 使用nokia的專有類Sound ...  閱讀全文

    posted @ 2005-11-23 13:50 讓變化成為計劃的一部分 閱讀(583) | 評論 (0)編輯 收藏


    Table of contents
    [hide]

    posted @ 2005-11-23 10:25 讓變化成為計劃的一部分 閱讀(576) | 評論 (0)編輯 收藏

         摘要: [JavaME]手機同時播放兩個音樂 探討一 摘要: 本文檔以及后續文檔試圖一步一步地探討如何在手機上同時播放兩個聲音文件,譬如一個是背景音樂,一個是按鍵觸發的游戲音效。請慢慢看下去,我們盡量糅合進各方匯集的一些經驗。 1背景 摘要:本章 簡單描述手機同時播放兩個音樂的背景。   1.1. 常見于各大J2ME論壇的這個問題 最近看到,不斷地有人再詢問同一類型的問題: ...  閱讀全文

    posted @ 2005-11-22 23:50 讓變化成為計劃的一部分 閱讀(1102) | 評論 (1)編輯 收藏

    摩托羅拉V300-V500-V600同時播放音樂的講究

    唯一支持的同步播放音樂的辦法是,midi和wav聲音混合播放。
    即使是這樣,也存在著一個限制:
    應用程序必須先播放midi(可以作為背景音樂),然后再播放wav;wav文件還必須是以下的格式:
     PCM 8000KHZ;
     8Bit;
     Mono。

    除了上面這種方法,只要是一個新的media被播放,上一個Player必須被停止而且釋放資源。

    posted @ 2005-11-21 15:56 讓變化成為計劃的一部分 閱讀(434) | 評論 (0)編輯 收藏

        /*
         * javaME中一向沒有與StringTokenizer相對應的類,Ostermiller提供了一個。他的util類包還有很多很多其他幫助類。
         * 你只需要將
            
    http://ostermiller.org/utils/StringTokenizer.java.html中的
            public class StringTokenizer implements java.util.Enumeration, java.util.Iterator {
            
            簡化為
            public class StringTokenizer implements java.util.Enumeration{
            。
            即可立即在midlet中使用
                String s = "  (   aaa  \t  * (b+c1 ))";
                StringTokenizer st = new StringTokenizer(s, " \t\n\r\f", "()+*");
                while (st.hasMoreTokens()) {
                    System.out.println(st.nextToken());
            ,我經過實際測試,得到了如下結果:
            (
            aaa
            *
            (
            b
            +
            c1
            )
            )
         
    */

        String s 
    = "  (   aaa  \t  * (b+c1 ))";
        StringTokenizer st 
    = new StringTokenizer(s, " \t\n\r\f""()+*");
        
    while (st.hasMoreTokens()) {
            System.out.println(st.nextToken());

    posted @ 2005-11-21 15:06 讓變化成為計劃的一部分 閱讀(331) | 評論 (0)編輯 收藏

         摘要: 不過,正像下面的帖子中談到的,Nokia 7650機型的問題是無法克服的,當你接電話時關閉了游戲,那么電話打完后你也無法啟動游戲了,除非重啟手機。  閱讀全文

    posted @ 2005-11-16 22:42 讓變化成為計劃的一部分 閱讀(516) | 評論 (1)編輯 收藏

    有點像手機英文輸入法中,按2一下代表a,連按兩下代表b,連續三下代表c。
    據說,你可以用timertask來做這件事情。

    我的一個設想是(未曾代碼試驗過,錯了請指出):

    用戶按鍵“1”,那么計數他按了多少下,根據他按的次數去你事先寫好的數組中查到是哪一個字符。如果用戶遲遲沒有再按下去,那么到了一定時間,就應該確認他的輸入了,timer呢就調用confirmCharacter()。

    String[] values = {".,1","abc","def"... ...};
     
    keyPressed(keyCode) {
      int index = keyCode - KEY_NUM0;
      if(index == lastindex) charselected++;
      else lastindex = index;
       // here reset the key confirmation timer
     
       tempInputString+=values[index].char(charselected);
    }
     
    //When timer gets triggered, it calls this method
    void confirmCharacter() {
        inputString = tempInputString;
        lastindex = -1;
    }

    posted @ 2005-11-16 19:19 讓變化成為計劃的一部分 閱讀(312) | 評論 (0)編輯 收藏


    譬如說你是在一個Form上,那么有一點點不幸。
    據我所知,除非你在Form上加一個CustomItem,并且選中它,那么你的
    protected void keyPressed(int key) {
        System.out.println("Key pressed: "+key);
    }
    能夠打印出你的按鍵。
    但是如果你當前焦點在TextField或其他lcdui.Item,那么不可能截獲按鍵。

    如果我說錯了,請指出。

    譬如說你當前是在一個Canvas上,ok,
    To "catch" an event, just implement one of

    # showNotify()
    # hideNotify()
    # keyPressed()
    # keyRepeated()
    # keyReleased()
    # pointerPressed()
    # pointerDragged()
    # pointerReleased()

    如果你特地針對keyPressed,那么:
    public class MyCanvas extends Canvas {
      MyMIDlet midlet;  // the midlet reference
      public MyCanvas(MyMIDlet m) {
        midlet = m;
      }
      protected void keyPressed(int keyCode) {
        if (getGameAction(keyCode) == Canvas.FIRE) {
          midlet.firePressed();
        }
      }
    }

    不過,值得注意的是,手機的按鍵并不能保證個個都能拿到,而且上下左右之類的特定意義的按鍵也未見得都有,所以小心。

    posted @ 2005-11-16 18:44 讓變化成為計劃的一部分 閱讀(565) | 評論 (0)編輯 收藏

         摘要: 請參考java.util.TimerTask. TimerTask is something like Timer in VisualBasic. You can sepcify a time period in milliseconds for your requirement"一幅LOGO顯示完以后,幾秒種自動顯示下一幅LOGO". Here is an sample code. pu...  閱讀全文

    posted @ 2005-11-16 18:19 讓變化成為計劃的一部分 閱讀(500) | 評論 (0)編輯 收藏

         摘要: 上回說到申請動態IP是可以了,并且準備好了一個線程等候在socket://10.16.195.219:8110之類的端口上監聽。

    這次把代碼修改了,完成了監聽線程之后,就相當于起了一個Socket Server,一旦有人要連接它,就回復一個字符串說“God bless you!You are the No.”后面加上是第幾位訪問者的序號。

    菜單中也相應加入了一個命令“聯系ServerSocket”,就是向界面中的"ServerSocket為:"編輯框所指明的Server發起Socket連接請求,看能否得到回復;如果有回復,就輸出到屏幕上。  閱讀全文

    posted @ 2005-11-16 16:29 讓變化成為計劃的一部分 閱讀(322) | 評論 (0)編輯 收藏

    我的7610一直好好的,直到昨天突然變成了走CMNET連接點竟然報告"SymbianOsError -3606"。搞得我想測試手機動態IP之間能否直接用Socket通信都測試不了了。
    查詢了這個錯誤號,指的是“KErrGenConnDatabaseDefaultUndefined -3606  "No Internet accounts have been set up. Set up an account in Control panel." ”

    后來,終于試出來了,只要到接入點刪除拔號連接互聯網,就可以了。然后起應用程序,再連接網絡時,就能夠提示選擇接入點了。而之前出現-3606錯誤的時候,是不會提示接入點選擇的。

    可能之前我曾經用撥號互聯網這個接入點撥號了,導致手機以后連CMNET默認用這個接入點,不帶提示的。


    posted @ 2005-11-16 15:42 讓變化成為計劃的一部分 閱讀(235) | 評論 (0)編輯 收藏

    下面的表格給出了jsr120規定的受限SMS Port Numbers

    Port number Description
    2805 WAP WTA secure connection-less session service
    2923 WAP WTA secure session service
    2948 WAP Push connectionless session service (client side)
    2949 WAP Push secure connectionless session service (client side)
    5502 Service Card reader
    5503 Internet access configuration reader
    5508 Dynamic Menu Control Protocol
    5511 Message Access Protocol
    5512 Simple Email Notification
    9200 WAP connectionless session service
    9201 WAP session service
    9202 WAP secure connectionless session service
    9203 WAP secure session service
    9207 WAP vCal Secure
    49996 SyncML OTA configuration
    49999 WAP OTA configuration

    普通SMS的端口是特定的,可以通過this.getAppProperty("SMS_Port")來獲取,只要你的設備支持JSR120。

    posted @ 2005-11-16 15:38 讓變化成為計劃的一部分 閱讀(827) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 一级特黄a大片免费| 免费无码作爱视频| 成人精品一区二区三区不卡免费看 | 亚洲成a人片在线观看无码| 亚洲冬月枫中文字幕在线看| 亚洲av无码片vr一区二区三区| 99re6在线视频精品免费| A在线观看免费网站大全| 亚洲综合区小说区激情区 | 亚洲一区二区三区免费视频| 特a级免费高清黄色片| 精品福利一区二区三区免费视频| 五月天婷亚洲天综合网精品偷| 亚洲综合精品香蕉久久网97| 黄色免费网址大全| 无人在线直播免费观看| 中国性猛交xxxxx免费看| 毛片免费在线播放| 亚洲国产成人片在线观看| 亚洲成在人线在线播放无码| 无码av免费网站| 亚洲国产精品尤物YW在线观看| 亚洲国产日韩在线| 三级黄色在线免费观看| 精品剧情v国产在免费线观看| 久久亚洲国产伦理| 免费国产a理论片| 成年轻人网站色免费看| 亚洲av无码乱码国产精品| 老司机午夜精品视频在线观看免费 | 久久亚洲精品无码VA大香大香| 午夜在线免费视频| 好大好硬好爽免费视频| 久久精品九九亚洲精品| 国产精品永久免费| 国产传媒在线观看视频免费观看| 亚洲一区二区三区无码国产| 久久国产乱子伦精品免费一| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲电影日韩精品| 亚洲国产欧美一区二区三区|