2010-04-14 7 views
6

Meine Android-Anwendung muss auf verschiedene Mobilfunk-Ländercodes unterschiedlich reagieren.Wie ändere ich den Mobile Country Code (MCC) im Android-Emulator?

Es scheint so, als ob es auf mcc310 (US) fest codiert ist. Ich kann diesen Wert von TelephonyManager.getSimCountryIso() lesen oder indem ich einen Ressourcenordner wie res/values-mcc123/ verwende, aber wie setze ich diesen Wert im Emulator?

Antwort

0

Im Emulator: gehen Sie zu Einstellungen-> Drahtlos und Netzwerk-> Mobilfunknetz-> Zugangspunktnamen. Versuchen Sie, den MCC-Wert im festgelegten APN zu ändern, und versuchen Sie dann Ihren Code.

+0

Gute Idee, aber es hat nicht funktioniert.Als ich das versuchte, verschwand der APN von der Liste und meine Anwendung konnte nicht mehr auf das Netzwerk zugreifen. – neu242

+0

Nun, in meinem Fall verschwand der APN und ich bekam: "Keine Netzwerkverbindung" als ich den Browser startete. Aber als ich die Warnung gebilligt habe, konnte ich im Internet surfen. Seltsames Verhalten. Wie auch immer, du kannst einen "Reset to Default" auf der APN Seite machen und deinen früheren APN zurückbekommen. – Samuh

0

Wissen Sie, dass das Vertrauen auf ein MCC in jedem Land nicht immer korrekt ist. Digicell verwendet zum Beispiel einen MCC + MNC in mehreren Ländern. Verstehen Sie auch, dass die gesamte Idee eines MCC vom Standpunkt des Netzwerks aus ziemlich lächerlich ist. Es ist eher irrelevant zu wissen, ob Sie in Deutschland oder in den Niederlanden sind, wenn Sie beide Male auf T-Mobile mit einem AT & T-Mobilteil sind.

+0

Ich stimme zwar völlig zu, aber das beantwortet die eigentliche Frage nicht. –

0

Es scheint nicht möglich zu sein, MCC/MNC über Einstellungen auf dem Android-Emulator zu ändern. Jedes Mal, wenn dies versucht wird, verschwindet der vorkonfigurierte "T-Mobile" APN aus der Liste und die Netzwerkverbindung geht verloren. Ich habe sogar den Emulator nach einer Änderung spontan neu starten lassen.

Die programmatische Art und Weise der APN wird auch nicht funktioniert, verschwinden direkt nach:

[email protected]_x86:/ # content update --uri content://telephony/carriers/ --bind name:s:'TheAPN' --bind apn:s:apn.operator.net --bind numeric:i:12345 --bind user:s: --bind password:s: --bind server:s: --bind proxy:s: --bind mmsproxy:s: --bind mmsc:s: --bind type:s: --bind mcc:i:123 --bind mnc:i:45 --bind current:i:1 --where _id=1 

Es wird von Hacking den Emulator auf die gleiche Weise möglich sein könnte, die die MSISDN oder IMEI, obwohl sich ändern lassen.

0

Das Ändern von MCC + MNC im Emulator kann nur mit ADB durchgeführt werden. Um die MCC + MNC im Emulator zu ändern, eine Verbindung zu ADB gehen Sie wie folgt

adb -s 127.0.0.1:53001 shell 

Dann gibt Ihrem Land Code setzen. 23801 ist dänischer Code.

setprop persist.<name of the emulator>.mccmnc 23801 

Für Droid4X Emulator ist es

setprop persist.droid4x.mccmnc 23801 

Reboot der Emulator.

+0

Die Eigenschaft ist eingestellt, aber das funktioniert nicht - TelephonyManager liest diese Eigenschaft nicht, wenn getSimCountryIso() zurückgegeben wird afaik –

+0

funktioniert es gut für Droid4x – prouser135

7

zu ändern, was TelephonyManager.getSimCountryIso() kehrt einfach

adb shell setprop gsm.sim.operator.iso-country no 

ausführen und es gibt jetzt kein (Norwegen).

Wenn Sie ändern wollen, was dann TelephonyManager.getSimOperator() kehrt (MCC + MNC)

adb shell setprop gsm.sim.operator.numeric 24201 

ausführen und Sie MCC haben sich geändert bis 242 (Norwegen) und MNC bis 01 (Telenor).

Um zu sehen, welche anderen Eigenschaften Sie können dann

adb shell getprop 

Dies wird ausführen ändern prüft sowohl AVD und Genymotion zu arbeiten. Dies ändert diese Eigenschaften jedoch nicht dauerhaft.

+0

Das funktioniert! Toller Tipp auch zu prüfen, welche Requisiten eingestellt werden können! Danke – speedynomads

+0

das funktioniert nicht für mich, wenn ich einen getprop sofort nach setprop mache bekomme ich noch "uns". Irgendeine Idee warum? –

+0

@AlexandruCristescu Dies ist auf einem Emulator? –

Verwandte Themen