2009-04-14 29 views
6

áp phích lần đầu tại đây.Chạy nhiều trình mô phỏng Android với các số điện thoại khác nhau

Tôi đang làm việc trên ứng dụng Android máy chủ ứng dụng khách và cố gắng tìm cách xác định các điện thoại/người dùng khác nhau với máy chủ một cách rõ ràng. Nỗ lực đầu tiên của tôi là sử dụng số điện thoại trên thẻ SIM. Mặc dù bây giờ tôi nghĩ về nó, thông thường số điện thoại của bạn sẽ thay đổi như thế nào khi bạn thay đổi tàu sân bay? Tôi đoán nó phụ thuộc từ quốc gia này sang quốc gia khác.

Dù sao, tôi đã cố gắng tìm ra, vì tôi không có điện thoại Android thực, cách thay đổi số điện thoại của điện thoại giả lập để mô phỏng những người dùng khác nhau. Có thể hay tôi nên nghĩ về các cách nhận diện khác?

Trả lời

5

Các android_id là nghĩa vụ để nhận diện các thiết bị, tuy nhiên, nó đã được lưu ý rằng id có thể được thay đổi nếu bạn biết làm thế nào Spoofing android_id

import android.provider.Settings.System; 

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

Trong giả lập, các android_id không có một giá trị, vì vậy bạn sẽ cần phải đặt một thói quen gỡ lỗi để tự gán một giá trị.

Tuy nhiên, nếu bạn muốn xác định người dùng và cho phép người dùng truy cập dịch vụ của bạn từ các thiết bị khác nhau với một id người dùng, bạn nên gán cho họ id người dùng và yêu cầu họ xác thực dịch vụ của bạn bằng id người dùng này chứng chỉ. Điều này sẽ cho phép họ sử dụng id của họ trên nhiều thiết bị khác nhau, trừ khi bạn sử dụng nó cùng với android_id (và android_id không bị giả mạo), sau đó bạn có thể giới hạn chúng thành một thiết bị.

+0

Cảm ơn, android_id đã sắp xếp những gì tôi đang tìm kiếm. Tuy nhiên sau khi đọc phần còn lại của câu trả lời của bạn và suy nghĩ thêm về nó tôi nhận ra tôi không muốn buộc các dịch vụ nghiêm ngặt với một thiết bị. – Janne

+0

Bây giờ nó không được chấp nhận và bạn có thể sử dụng ANDROID_ID được định nghĩa trong Cài đặt.Secure: String id = System.getString (this.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); – Gaket

3

Bạn nên sử dụng số hiện diện của trình mô phỏng. Ví dụ. thường giả lập đầu tiên đang chạy có số 5554, thứ hai 5555, v.v.

Bạn có thể sử dụng các số này để thực hiện cuộc gọi, gửi tin nhắn văn bản từ trình giả lập đến trình mô phỏng. Điều này, tôi nghĩ, mô phỏng các số/người dùng khác nhau cho các mục đích của bạn.

+0

Đó là một ý tưởng hay. Có cách nào để có được số lượng trình mô phỏng lập trình không? – Janne

1

Thông tin thẻ SIM được mã hóa cứng vào bộ mã hóa giả lập và trình giả lập x86. Thay đổi số điện thoại (MSISDN) được ghi chi tiết ở cuối bài đăng trên blog này: new link, web archive

Thẻ SIM lưu số điện thoại với mỗi 2 chữ số được hoán đổi. Vì vậy, (7 số đầu tiên của số điện thoại) 1555521 trở thành 515525%d1 trong hệ nhị phân. Trong khi một chút tẻ nhạt, vá nó cho mỗi bài kiểm tra không phải là kết thúc của thế giới. Bạn cũng có thể sử dụng sed:

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

Điều đó sẽ thay đổi số thành 1-876-543- [PORT NUMBER]. Chi tiết về lý do tại sao trong bài đăng trên blog được liên kết.

Các vấn đề liên quan