带有电话号码的Android模拟器?

时间:2009-04-14 06:56:38

标签: android emulation identification

我正在开发一个客户端 - 服务器Android应用程序,并试图找出如何明确地识别服务器的不同电话/用户。我的第一次尝试是使用SIM卡上的电话号码。虽然我现在考虑过这个问题,但是现在你的电话号码变得多么普遍。改变载体?我想这取决于国家/地区等。

无论如何,我一直想弄明白,因为我没有真正的Android手机,如何更改模拟器手机的手机号码来模拟不同的用户。是否有可能或者我应该考虑其他识别方法?

3 个答案:

答案 0 :(得分:6)

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

,则可以更改ID
import android.provider.Settings.System;

String android_id = System.getString(this.getContentResolver(), System.ANDROID_ID);

在模拟器中,android_id没有值,因此您需要调试例程以自行分配值。

但是,如果您要识别用户,并让用户使用一个用户ID从不同设备访问您的服务,最好为他们分配一个用户ID,并让他们使用此用户ID作为他们的凭据对您的服务进行身份验证。这会让他们在许多不同的设备上使用他们的ID,除非你将它与android_id一起使用(并且android_id没有被欺骗),那么你可以将它们限制为一个设备。

答案 1 :(得分:3)

您应该使用模拟器提供的数字。例如。通常运行的第一个模拟器的编号为5554,第二个为5555,依此类推。

您可以使用这些号码拨打电话,从模拟器向模拟器发送短信。我认为,这可以为您的目的模拟不同的数字/用户。

答案 2 :(得分:1)

SIM卡信息被硬编码到仿真器arm和emulator-x86二进制文件中。更改电话号码(MSISDN)详见本博文末尾:new linkweb archive

SIM卡存储每个交换2位数的电话号码。因此(电话号码的前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- [PORT NUMBER]。有关链接博客文章中的原因的详细信息。