代码之家  ›  专栏  ›  技术社区  ›  Janne

带电话号码的Android模拟器?

  •  6
  • Janne  · 技术社区  · 15 年前

    我正在开发一个客户机-服务器Android应用程序,并试图弄清楚如何明确地识别服务器上的不同电话/用户。我的第一次尝试是使用SIM卡上的电话号码。虽然现在我想起来了,但是现在,当你换运营商时,你的电话号码改变有多常见?我想这要看各国的情况。

    不管怎样,我一直在试图弄清楚,因为我没有真正的Android手机,如何改变仿真器手机的电话号码来模拟不同的用户。这是可能的,还是我应该考虑其他的识别方法?

    3 回复  |  直到 6 年前
        1
  •  5
  •   dar    15 年前

    这个 android_id 应该唯一地标识设备,但是,已经注意到,如果您知道如何更改ID Spoofing android_id

    import android.provider.Settings.System;
    
    String android_id = System.getString(this.getContentResolver(), System.ANDROID_ID);
    

    在模拟器中, 雄蛛科 没有值,因此您需要放入调试例程来自己分配一个值。

    但是,如果您想要识别用户,并让用户使用一个用户ID从不同的设备访问您的服务,那么最好为他们分配一个用户ID,并让他们使用此用户ID作为凭证对您的服务进行身份验证。这将允许他们在许多不同的设备上使用他们的ID,除非您将其与 雄蛛科 (和 雄蛛科 你可以把它们限制在一个设备上。

        2
  •  3
  •   Marcin Gil    15 年前

    您应该使用模拟器提供的数字。通常运行的第一个模拟器有5554号、第二个5555号等等。

    您可以使用这些号码进行呼叫,将文本消息从Emulator发送到Emulator。我认为,这可以为您模拟不同的数字/用户。

        3
  •  1
  •   Dan Getz    8 年前

    SIM卡信息被硬编码到Emulator ARM和Emulator-x86二进制文件中。更改电话号码(msisdn)的详细信息,请参阅以下博客文章: new link , web archive

    SIM卡存储电话号码,每两个数字交换一次。所以(电话号码的前7个) 1555521 变成 515525%d1 在二进制中。虽然有点乏味,但为每个测试修补它并不是世界末日。您也可以使用SED:

    cd path/to/android-sdk-linux/tools/
    cp emulator-arm emulator-arm.backup
    sed -i 's/515525%d1/816745%d3/g' emulator-arm
    

    这将把号码改为1-876-543-[端口号]。有关链接日志中的原因的详细信息。