【问题标题】:How to find user location using cell tower in J2ME?如何在 J2ME 中使用手机信号塔查找用户位置?
【发布时间】:2012-07-24 20:50:32
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您的意思是区域名称 (cellinfo) 吗?
  • 是的,仅限区域名称(小区信息)

标签: java mobile java-me


【解决方案1】:

此小区信息由小区信号塔以 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            
    }
    

【讨论】:

  • 感谢您的帖子,我是 j2mee 的新手,如果用户有任何呼叫,我也想重定向到上述应用程序,而不是向用户显示呼叫者号码和来自的单元格信息他/她打电话的地方。再次感谢您的耐心和您的帖子
  • +1 用于将 PushRegistry 与 cbs 协议一起使用,尽管我同意 @funkybro 的观点,它实际上可能不是正确的答案。
  • 实参HelloWorldMidlet不能通过本行方法调用转换为javax.wireless.messaging.MessageListener msgconn.setMessageListener(this);
【解决方案2】:

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

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

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

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

在 J2ME 中不可能。

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

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


【讨论】:

    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多