3

我只想在 j2me 中使用手机信号塔查找位置名称。

另外,如何将来电重定向到我们自己的应用程序,从那里向用户显示来电号码,就像正常的呼叫信息一样?

[截至目前,当有人打电话给某人时,会显示手机号码,]

我想用他/她的手机号码向来电者显示来电者的位置。

4

2 回答 2

5

此小区信息由小区信号塔作为 CBS(小区广播服务)消息进行广播,并由大多数服务提供商在某个预定义频道(通常为 050)上连接到该信号塔的所有 GSM 手机接收。因此,我们的 Java ME 应用程序可以使用 Push Registry 监听此 CBS 频道并捕获此信息。

按照步骤,

  1. 导入库

    import javax.wireless.messaging.*;
    import javax.microedition.io.PushRegistry;
    
  2. 注册您的 Midlet 以侦听 CBS 端口 50 并设置消息侦听器

    public void setupListening()
    {        
        try{
        PushRegistry.registerConnection("cbs://:50",this.getClass().getName(),"*");
        }catch(Exception e){}
        String[] connList;
        connList = PushRegistry.listConnections(true);
    if((connList == null) || (connList.length == 0))
    {
      // You can exit the app, if you want
    }
    else 
        { 
        try{
        msgconn = (MessageConnection)Connector.open("cbs://:50");
            msgconn.setMessageListener(this);
        } catch( IOException e){ e.printStackTrace();}
         }
    }
    
  3. 检索 CBS 消息有效负载。

    public void notifyIncomingMessage(MessageConnection conn)
    {
      try{
            txtmsg =(TextMessage)msgconn.receive();
         }catch(Exception e){System.out.println(e);}
         from = txtmsg.getAddress());
         Msg = txtmsg.getPayloadText();
        // Display from & Msg            
    }
    
于 2012-07-24T11:10:32.397 回答
1

我只想在 j2me 中使用手机信号塔查找位置名称。

当设备不处于 3G 模式时,@Lucifer 的方法会在某些网络上向您显示您自己当前的 Cell ID 信息。

另外,如何将来电重定向到我们自己的应用程序,从那里向用户显示来电号码,就像正常的呼叫信息一样?

[截至目前,当有人打电话给某人时,会显示手机号码,]

在 J2ME 中是不可能的。

我想用他/她的手机号码向来电者显示来电者的位置。

根本不可能!您的手机 ID 指的是您的位置,而不是呼叫者的位置。即使有一种将来电信息路由到 J2ME 应用程序的方法,您也只能显示国家信息(例如,以 +44 开头的号码肯定是英国),如果该号码是固定电话,则有些高级位置信息(例如,以+441234 开头的数字是英国贝德福德)。


于 2012-07-24T12:50:32.600 回答