当前位置:  编程技术>移动开发
本页文章导读:
    ▪安装到手机下出现java.lang.ClassNotFoundException异常        安装到手机上出现java.lang.ClassNotFoundException错误 安装到手机上出现java.lang.ClassNotFoundException错误,是因为使用了自己的package,去掉package重新编译运行就可以了。更好的解决方法没有找到。 .........
    ▪ 短信发送机的兑现        短信发送机的实现 今天早上回来就产生了一个想法,不如用j2me实现一个短信发送机的程序,然后只需要填入几个数字就可以实现短信的自动发送等。 经过大概2个小时的奋斗,终于写好了,.........
    ▪ 用一个简略的例子来看MIDlet的生命周期原文       用一个简单的例子来看MIDlet的生命周期原文 原文 用一个简单的例子来看MIDlet的生命周期 用一个简单的例子来看MIDlet 的生命周期 想来估计也没有比网上教程说的更清楚了,我这里摘录.........

[1]安装到手机下出现java.lang.ClassNotFoundException异常
    来源: 互联网  发布时间: 2014-02-18
安装到手机上出现java.lang.ClassNotFoundException错误

安装到手机上出现java.lang.ClassNotFoundException错误,是因为使用了自己的package,去掉package重新编译运行就可以了。更好的解决方法没有找到。

希望高人能指点!

1 楼 daoger 2007-02-05  
那肯定是你的package没有加载啊!看看路径是否正确!
2 楼 CoolSlob 2007-02-05  
不好意思,。
要怎么加载package?

在eclipse中运行是正确的,我生成package后,双击jad文件运行就会报错.

    
[2] 短信发送机的兑现
    来源: 互联网  发布时间: 2014-02-18
短信发送机的实现

今天早上回来就产生了一个想法,不如用j2me实现一个短信发送机的程序,然后只需要填入几个数字就可以实现短信的自动发送等。
经过大概2个小时的奋斗,终于写好了,并且在多部不同品牌的机器运行良好,而且很实用,不过可以有些手机需要数字签名,否则的话,会不停的提示你。郁闷,不过索爱跟三星就可以设置。
现在公布源代码跟按照文件
先让大家看个图


java 代码
  • /********************************************************************
  • * 项目名称 :j2me学习
  • *
  • * Copyright 2005-2006 Wuhua. All rights reserved
  • ********************************************************************/
  • package org.fox.sms;
  • import java.io.IOException;
  • import javax.microedition.io.Connector;
  • import javax.microedition.lcdui.Command;
  • import javax.microedition.lcdui.CommandListener;
  • import javax.microedition.lcdui.Displayable;
  • import javax.microedition.lcdui.Form;
  • import javax.microedition.lcdui.TextField;
  • import javax.wireless.messaging.MessageConnection;
  • import javax.wireless.messaging.TextMessage;
  • /**
  • * 类名:SMSForm.java
  • * 编写日期: 2007-5-25
  • * 程序功能描述:
  • * Demo:
  • * Bug:
  • *
  • * 程序变更日期 :
  • * 变更作者 :
  • * 变更说明 :
  • *
  • * @author wuhua
    rrq12345@163.com
  • */
  • public class SMSForm extends Form
  • implements CommandListener, Runnable{
  • Command send = new Command("发送", Command.OK, 1);
  • Command back = new Command("返回", Command.BACK, Command.BACK);
  • TextField phone;
  • TextField content;
  • TextField num;
  • TextField timeOut;
  • TextField text;
  • String serverPort = "5000";// getAppProperty("serverPort");
  • int sms;
  • Menu menu;
  • public SMSForm(Menu m) {
  • super("短信发送机");
  • setCommandListener(this);
  • text = new TextField("状态", "等待发送短信", 20, TextField.ANY);
  • phone = new TextField("号码", "xxxxxx:", 20, TextField.NUMERIC);
  • content = new TextField("指令", "777", 10, TextField.NUMERIC);
  • num = new TextField("条数", "23", 10, TextField.NUMERIC);
  • timeOut = new TextField("时间格", "10", 10, TextField.NUMERIC);
  • this.append(phone);
  • this.append(content);
  • this.append(num);
  • this.append(timeOut);
  • this.append(text);
  • this.addCommand(send);
  • this.addCommand(back);
  • this.menu = m;
  • }
  • public void commandAction(Command c, Displayable arg1) {
  • if(c == send){
  • new Thread(this).start();
  • this.removeCommand(send);
  • }else{
  • SMSSenderMIDlet.display.setCurrent(menu);
  • }
  • }
  • public void run() {
  • int num = Integer.parseInt(this.num.getString());
  • int sleep = Integer.parseInt(this.timeOut.getString());
  • while(true){
  • //System.out.println(sleep);
  • if(sms < num){
  • senderImpl();
  • }
  • else{
  • SMSSenderMIDlet.display.setCurrent(menu);
  • break;
  • }
  • try {
  • //System.out.println(sleep);
  • Thread.sleep(sleep*1000);
  • //System.out.println(sleep);
  • } catch (InterruptedException e) {
  • e.printStackTrace();
  • }
  • }
  • }
  • private void senderImpl() {
  • String addr = "sms://" + phone.getString();
  • System.out.println("发送地址为:" + addr);
  • MessageConnection conn;
  • try {
  • conn = (MessageConnection) Connector.open(addr);
  • TextMessage msg = (TextMessage) conn
  • .newMessage(MessageConnection.TEXT_MESSAGE);
  • msg.setPayloadText(content.getString());
  • conn.send(msg);
  • conn.close();
  • sms++;
  • //text = sms+"";
  • text.setString("成功发送" +this.num.getString() + "第" + sms + "条");
  • } catch (IOException e) {
  • // TODO 自动生成 catch 块
  • e.printStackTrace();
  • }
  • }
  • }
  • /********************************************************************
  • * 项目名称 :j2me学习
  • *
  • * Copyright 2005-2006 Wuhua. All rights reserved
  • ********************************************************************/
  • package org.fox.sms;
  • import javax.microedition.lcdui.Command;
  • import javax.microedition.lcdui.CommandListener;
  • import javax.microedition.lcdui.Displayable;
  • import javax.microedition.lcdui.List;
  • /**
  • * 类名:Menu.java
  • * 编写日期: 2007-5-25
  • * 程序功能描述:
  • * Demo:
  • * Bug:
  • *
  • * 程序变更日期 :
  • * 变更作者 :
  • * 变更说明 :
  • *
  • * @author wuhua
    rrq12345@163.com
  • */
  • public class Menu extends List implements CommandListener{
  • Command send = new Command("打开发送机", Command.OK, 1);
  • public Menu(String title, int listType) {
  • super(title, listType);
  • this.append("打开发送机", null);
  • this.addCommand(send);
  • this.setCommandListener(this);
  • }
  • public void commandAction(Command c, Displayable d) {
  • System.out.println("dfsdfsd");
  • if(c == send){
  • SMSSenderMIDlet.display.setCurrent(new SMSForm(this));
  • }else{
  • }
  • }
  • }
  • /********************************************************************
  • * 项目名称 :j2me学习
  • *
  • * Copyright 2005-2006 Wuhua. All rights reserved
  • ********************************************************************/
  • package org.fox.sms;
  • import java.io.IOException;
  • import javax.microedition.io.Connector;
  • import javax.microedition.lcdui.Choice;
  • import javax.microedition.lcdui.Display;
  • import javax.microedition.midlet.MIDlet;
  • import javax.microedition.midlet.MIDletStateChangeException;
  • import javax.wireless.messaging.MessageConnection;
  • /**
  • * 类名:SMSSenderMIDlet.java
  • * 编写日期: 2007-5-25
  • * 程序功能描述:
  • * Demo:
  • * Bug:
  • *
  • * 程序变更日期 :
  • * 变更作者 :
  • * 变更说明 :
  • *
  • * @author wuhua
    rrq12345@163.com
  • */
  • public class SMSSenderMIDlet extends MIDlet {
  • private MessageConnection sconn;
  • public static Display display;
  • public SMSSenderMIDlet() {
  • }
  • protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  • try {
  • sconn.close();
  • } catch (IOException e) {
  • // TODO 自动生成 catch 块
  • e.printStackTrace();
  • }
  • }
  • protected void pauseApp() {
  • }
  • protected void startApp() throws MIDletStateChangeException {
  • String serverPort = "5000";
  • try {
  • sconn = (MessageConnection) Connector.open("sms://:" + serverPort);
  • } catch (IOException e) {
  • e.printStackTrace();
  • }
  • Menu m = new Menu("短信发送机",Choice.IMPLICIT);
  • display = Display.getDisplay(this);
  • display.setCurrent(m);
  • }
  • }
  • 1 楼 wuhua 2007-05-25  
    忘记上传安装文件了<br/>
    可以直接安装到各个手机上
    2 楼 lordhong 2007-05-25  
    大哥..这个是不是要JSR 205支持啊?
    3 楼 wuhua 2007-05-26  
    lordhong 写道
    大哥..这个是不是要JSR 205支持啊?

    是的
    4 楼 Dooy 2007-06-26  
    努力学习中
    5 楼 一名小鹰 2007-06-27  
    看了效果图了,值得以后好好学习,不过,我目前想学J2EE。
    6 楼 Dooy 2007-06-28  
    弱弱的问句

    应该是在eclipse 下开发的吧?

    开发中是如何调试的?然不成没有语法错误后,编译打包,放到真机上再调试?
    7 楼 yjfkk 2007-06-29  
    试试看
    8 楼 wenxiaogen 2007-08-22  
    Dooy 写道
    弱弱的问句

    应该是在eclipse 下开发的吧?

    开发中是如何调试的?然不成没有语法错误后,编译打包,放到真机上再调试?

    可以理解为 两端设备和端口来组成一个段


    像sdh,就是两个TM或者TM和ADM之间的线路端口 这么一段 我们称为 复用段。 两个中继设备之间的一段,我们称为 再生段。

        
    [3] 用一个简略的例子来看MIDlet的生命周期原文
        来源: 互联网  发布时间: 2014-02-18
    用一个简单的例子来看MIDlet的生命周期原文
    原文
    用一个简单的例子来看MIDlet的生命周期

    用一个简单的例子来看MIDlet 的生命周期

    想来估计也没有比网上教程说的更清楚了,我这里摘录的只是文字,从www.j2medev.com来获取,更详细的资料可以到www.j2medev.com上查看。我将会以一个例子跟查看官方的源代码来分析它们。

    理解J2ME 的体系结构并不像想象的那么容易,我们觉得读更多的资料帮助也不大,我们

    直接迈向J2ME 开发也许会对你理解J2ME 平台体系结构这个重要的概念有所帮助。在MIDP

    中定义了一种新的应用程序模型MIDlet,它是被Application Management Software(AMS)管理

    的。AMS 负责MIDlet 的安装、下载、运行和删除等操作。在被AMS 管理的同时,MIDlet 可

    以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed()

    和notifyPaused()实现的

    MIDlet 有三个状态,分别是pause、active 和destroyed。在启动一个MIDlet 的时候,应用

    管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候

    MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(boolean

    第1 章 J2ME 技术概述

    4

    unconditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。值得一提的

    是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS 通

    知MIDlet 进入destroyed 状态。在destroyed 状态的MIDlet 必须释放了所有的资源,并且保存了

    数据。如果unconditional 为false 的时候, MIDlet 可以在接到通知后抛出

    MIDletStateChangeException 而保持在当前状态,如果设置为true 的话,则必须立即进入destroyed

    状态。下图说明了MIDlet 状态改变情况:

    <!----><!----><!---->

     


    看看我那个简单的例子
    public class HelloWorld extends MIDlet ......{

        public HelloWorld() ......{ 
            System.out.println("这个是程序的构造函数,程序运行的时候首先调用这个");
        }

        protected void destroyApp(boolean unconditional)
                throws MIDletStateChangeException ......{
            System.out.println("这个是程序的destroyed事件,当您按下退出时调用");
        }

        protected void pauseApp() ......{
            System.out.println("这个是程序的pause事件,当您按下暂停的时调用");

        }

        protected void startApp() throws MIDletStateChangeException ......{
            System.out.println("这个是程序的active事件,程序启动时候调用");

        }

    }

    大家可以运行程序中看到这个程序的运行先后顺些。基本上就明白了程序的调用机制了。
    现在大家思考下,j2me的MIDlet是怎么样运行的呢?sun在里面进行了什么样子的限制与手脚呢?
    一般的应用程序都有个main入门。这里没有,为什么呢?
    我想这个就是ASM的作用了,sun在后台做了很多处理,比如包括,启动容器,启动MIDlet相关的资源等等。

    public static void main(String args[]) ...{
            CommandState state = new CommandState();

        /**//*
         * pass resource strings down to the native system menu and
         * popup choice group methods...
         */
        initSystemLabels();

            /**//*
             * We will try to handle any printing at this level, because
             * displaying JAM command line errors is device specific.
             */
            try ...{
                initializeInternalSecurity();

            /**//* Start a inbound connection watcher thread. */
            new Thread(new PushRegistryImpl()).start();

                restoreCommandState(state);

                // handle any development machine only functions at this level
                switch (state.nextCommand) ...{
                case CommandProcessor.RUN_CLASS:
                    runLocalClass(state);
                    state.nextCommand = CommandProcessor.EXIT;
                    break;

                case CommandProcessor.MANAGE:
                    manage(state);
                    break;

                case CommandProcessor.LIST:
                case CommandProcessor.STORAGE_NAMES:
                    list(state);
                    state.nextCommand = CommandProcessor.EXIT;
                    break;

                case CommandProcessor.REMOVE:
                    if (DEV_STORAGE_NAME.equals(state.suiteStorageName)) ...{
                        removeDevStorage(state);
                        state.nextCommand = CommandProcessor.EXIT;
                        break;
                    }

                    // fall through
                default:
                    CommandProcessor.perform(state);
                    if (state.status == CommandProcessor.MIDLET_SUITE_NOT_FOUND) ...{
                        System.out.println("The MIDlet suite was not found.");
                    } else if (state.initialCommand == CommandProcessor.INSTALL &&
                            state.status == CommandProcessor.OK) ...{
                        System.out.println("Storage name: " +
                                           state.suiteStorageName);
                    }
                }
            } catch (InvalidJadException ije) ...{
                System.out.println("** Error installing suite (" +
                                   ije.getReason() + "): " + 
                                   messageForInvalidJadException(ije));
            } catch (IOException ioe) ...{
                System.out.println("** Error installing suite: " +
                                   ioe.getMessage());
            } catch (ClassNotFoundException ex) ...{
                if (state.initialCommand == CommandProcessor.MANAGE) ...{

                  state.runExceptionMessage =
                        Resource.getString("The application cannot be launched. " +
                        "One of the application classes appears to be missing. " +
                        "This could be due to a mis-named class. Contact the " +
                        "application provider to resolve the issue.");
                } else ...{
                    System.out.println("MIDlet class(s) not found: " + 
                                       ex.getMessage());
                }
            } catch (InstantiationException ex) ...{
                if (state.initialCommand == CommandProcessor.MANAGE) ...{
                   state.runExceptionMessage = Resource.getString(
                       "The application cannot be launched. The application " +
                       "may have done an illegal operation. Contact the " +
                       "application provider to resolve the issue.") + " " +
                       ex.getMessage();
                } else ...{
                    System.out.println(
                        "MIDlet instance(s) could not be created: " + 
                                     ex.getMessage());
                }
            } catch (IllegalAccessException ex) ...{
                if (state.initialCommand == CommandProcessor.MANAGE) ...{
                    state.runExceptionMessage = Resource.getString(
                       "The application cannot be launched. The application " +
                       "may have done an illegal operation. Contact the " +
                       "application provider to resolve the issue.") + " " +
                       ex.getMessage();
                } else ...{
                    System.out.println(
                        "MIDlet class(s) could not be accessed: " + 
                        ex.getMessage());
                }
            } catch (OutOfMemoryError ex) ...{
                if (state.initialCommand == CommandProcessor.MANAGE) ...{
                    state.runExceptionMessage = Resource.getString(
                        "The application has unexpectedly quit because it ran " +
                        "out of memory.");
                } else ...{
                    System.out.println("The MIDlet has run out of memory");
       &nb

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3