6

我正在开发一个客户端-服务器 Android 应用程序,并试图弄清楚如何明确地识别服务器的不同电话/用户。我的第一次尝试是使用 SIM 卡上的电话号码。尽管现在我想起来了,但如今,当您更换运营商时,您的电话号码发生变化的情况有多普遍?我想这取决于国与国等。

不管怎样,我一直在想,由于我没有真正的Android手机,如何更改模拟器手机的电话号码来模拟不同的用户。是否有可能或者我应该考虑其他识别方式?

4

3 回答 3

6

android_id应该唯一标识设备,但是,如果您知道如何欺骗 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_idandroid_id

于 2009-04-14T13:36:00.357 回答
3

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

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

于 2009-04-14T07:40:22.613 回答
1

SIM 卡信息被硬编码到 emulator-arm 和 emulator-x86 二进制文件中。更改电话号码 (MSISDN) 在此博客文章的末尾有详细说明:新链接网络存档

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-[端口号]。有关原因的详细信息在链接的博客文章中。

于 2013-04-23T17:51:23.423 回答