Chinaunix首页 | 论坛 | 博客
  • 博客访问: 478718
  • 博文数量: 60
  • 博客积分: 7346
  • 博客等级: 少将
  • 技术积分: 1980
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-08 15:56
文章分类

全部博文(60)

文章存档

2022年(1)

2014年(5)

2012年(12)

2011年(1)

2010年(2)

2009年(34)

2008年(5)

我的朋友

分类: Java

2008-12-16 19:17:46

本篇是本人收集到的怎么获取手机的Imei和cellid的总结,由于这两个属性是每个厂商自己实现,故而没有统一的方法。本人收集的也不全,测试亦是不全面。放置一篇文章在这里,希望有兴趣的人多多补充。

资料来源如下:



https://developer.sonyericsson.com/message/110949

测试代码如下,当中使用了polish做适配:

package study;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import de.enough.polish.ui.Form;

/**
 * 
 * 
@author: zhanghongzhi lanfanss@126.com
 * 
@version: 0.1
 * @time: 2008-8-10 下午01:56:17
 * 
 
*/
public class GetIMEIAndCellId extends MIDlet implements CommandListener {
    
private Command exitCommand = new Command("exit", Command.EXIT, 1);

    Form form 
= new Form("imei and cellid");
    Display display 
= null;

    
public GetIMEIAndCellId() {
        display 
= Display.getDisplay(this);

    }

    
protected void destroyApp(boolean arg0) {

    }

    
protected void pauseApp() {

    }

    
protected void startApp() throws MIDletStateChangeException {
        
//获取系统信息
        String info = System.getProperty("microedition.platform");
        
//获取到imei号码
        String imei = "";
        
//cellid
        String cellid = "";
        
//lac
        String lac = "";
        
//#if polish.vendor==Sony-Ericsson
        imei = System.getProperty("com.sonyericsson.imei");
        
//参考 
        
//https://developer.sonyericsson.com/message/110949
        cellid = System.getProperty("com.sonyericsson.net.cellid");
        
//获取索爱机子的
        lac = System.getProperty("com.sonyericsson.net.lac");
        
//#else if polish.vendor==Nokia
        imei = System.getProperty("phone.imei");
        
if (imei == null || "".equals(imei)) {
            imei 
= System.getProperty("com.nokia.IMEI");
        }
        
if (imei == null || "".equals(imei)) {
            imei 
= System.getProperty("com.nokia.mid.imei");
        }
        
//获取到cellid
        
//参考http://wiki.forum.nokia.com/index.php/CS000947_-_Getting_Cell_ID_in_Java_ME
        
//#if polish.group==Series60
        cellid = System.getProperty("com.nokia.mid.cellid");
        
//#else if polish.group==Series40
        cellid = System.getProperty("Cell-ID");
        
//#endif
        
//#else if polish.vendor==Siemens
        imei = System.getProperty("com.siemens.imei");
        
//#else if polish.vendor==Motorola
        imei = System.getProperty("com.motorola.IMEI");
        
//cellid 参考 
        cellid = System.getProperty("CellID");
        
//#else if polish.vendor==Samsung
        imei = System.getProperty("com.samsung.imei");
        
//#endif

        
if (imei == null || "".equals(imei)) {
            imei 
= System.getProperty("IMEI");
        }

        
//展示出来
        form.append("platforminfo:" + info);
        form.append(
"imei:" + imei);
        form.append(
"cellid:" + cellid);
        form.setCommandListener(
this);
        form.addCommand(exitCommand);
        display.setCurrent(form);
    }

    
public void commandAction(Command cmd, Displayable item) {
        
if (cmd == exitCommand) {
            destroyApp(
false);
            notifyDestroyed();
        }
    }

}

目前我手机的测试结果如下,希望大家能够补充测试结果或者指出文中纰漏之处:
夏普-sh9010c:不能够获取
sonyericsson:
     c702,k818c:能够获取imei及cellid
阅读(1055) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~