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に値がないため、自分で値を割り当てるためにデバッグ ルーチンを配置する必要があります。

ただし、ユーザーを識別し、ユーザーが 1 つのユーザー ID を使用してさまざまなデバイスからサービスにアクセスできるようにする場合は、ユーザー ID を割り当て、このユーザー ID を資格情報として使用してサービスに対して認証することをお勧めします。これにより、さまざまなデバイスで ID を使用できるようになりますが、 と組み合わせて使用​​しない限りandroid_id(およびandroid_idがスプーフィングされていない場合)、それらを 1 つのデバイスに制限できます。

于 2009-04-14T13:36:00.357 に答える
3

エミュレータによって提示された番号を使用する必要があります。例えば。通常、実行中の最初のエミュレーターの番号は 5554、2 番目のエミュレーターは 5555 というようになります。

これらの番号を使用して、通話を発信したり、エミュレーターからエミュレーターにテキスト メッセージを送信したりできます。これは、目的に合わせてさまざまな数/ユーザーをシミュレートしていると思います。

于 2009-04-14T07:40:22.613 に答える
1

SIM カード情報は、emulator-arm および emulator-x86 バイナリにハードコーディングされています。電話番号 (MSISDN) の変更については、このブログ投稿の最後に詳しく説明されています:新しいリンクウェブ アーカイブ

SIM カードには、電話番号が 2 桁ずつ入れ替わって保存されます。したがって、(電話番号の最初の 7)は 2 進数に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 に答える