Android エミュレーターでネットワーク ロケーション プロバイダーをアクティブにしますか?
-
19-09-2019 - |
質問
Android エミュレーターでネットワーク ロケーション プロバイダーをアクティブにすることはできますか?もしかしたら偽のチェリッドを使っているのかな?
解決
私は何を達成したいことは現時点では不可能であると信じています。あなたは、エミュレータのネットワークロケーションプロバイダにモックロケーションデータを置くことはできません。
「あなたが動作するようにモックロケーションデータの順にGPS_PROVIDERからの位置更新を要求しなければならないので、GPSの位置データとして注入されたモックロケーションデータを提供します。」 (のAndroidからの引用、ドキュメント、モック場所データを提供する)
私が思い付くことができます最も近いものは<のhref = "http://developer.android.com/reference/android/location/LocationManager.html#addTestProvider%から「テストプロバイダ」を作成することであろう28java.lang.String、%20boolean、%20boolean、%20boolean、%20boolean、%20boolean、%20boolean、%20boolean、%20int、%20int%29" >
の場所マネージャ>public void addTestProvider (String name, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy)
、それに応じてのrequiresCellする、のrequiresNetwork の引数を設定し、のrequiresSatelliteする。そして、あなたからそのプロバイダに偽の場所を置くことができます:
public void setTestProviderLocation (String provider, Location loc)
これはあなたが求めて正確に何に近いがありません。
他のヒント
位置情報をエミュレータに送信する必要がありますか?これを行いたい場合は、adb コンソールと geo コマンドを介してエミュレータに位置情報を送信できます。 http://developer.android.com/guide/developing/tools/emulator.html#geo
偽の cellid を送信できるかどうかはわかりませんが、アプリケーションが任意の GPS プロバイダーをリッスンしている場合、GPS 座標を使用して送信することは可能です。
多分 をインストールできます 統合Nlp エミュレータ内のネットワーク ロケーション プロバイダーを使用すると、少なくとも 持っている ある NETWORK
データを提供しない場合でも、位置情報プロバイダーを使用します。
このプロバイダーはモジュール式なので、 おそらく² 疑似ロケーションを挿入するためのバックエンドを作成できます。
エミュレータの設定]> [位置情報アクセスに移動し、チェック「のWi-Fi&モバイルネットワークの場所」