Androidエミュレーターでネットワークロケーションプロバイダーをアクティブ化することは可能ですか?多分偽のcellidで?
4 に答える
現時点では、あなたが達成したいことは不可能だと思います。エミュレータのネットワークロケーションプロバイダーにモックロケーションデータを配置することはできません。
「モックロケーションデータの提供はGPSロケーションデータとして挿入されるため、モックロケーションデータを機能させるには、GPS_PROVIDERにロケーション更新を要求する必要があります。」(Androidからの引用、ドキュメント、模擬位置データの提供)
私が思いつくことができる最も近いことは、 ロケーションマネージャーから「テストプロバイダー」を作成することです。
public void addTestProvider (String name, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy)
それに応じて、 requiresNetwork、requiresCell、requiresSatelliteの引数を設定します。次に、偽の場所をそのプロバイダーに配置できます。
public void setTestProviderLocation (String provider, Location loc)
それはあなたが求めていたものに近いですが、正確ではありません。
位置情報をエミュレーターに送信する必要がありますか?これを実行したい場合は、adbコンソールとgeoコマンドhttp://developer.android.com/guide/developing/tools/emulator.html#geoを介してエミュレーターに場所を送信できます。
偽のcellidを送信できるかどうかはわかりませんが、アプリケーションがgpsプロバイダーをリッスンしている場合は、gps座標で送信できます。
おそらく、エミュレータにUnifiedNlpネットワークロケーションプロバイダーをインストールできます。データがない場合でも、少なくともロケーションプロバイダーがあります。NETWORK
そのプロバイダーはモジュール式であるため、おそらく²バックエンドを作成してモックの場所を挿入できます。
エミュレータの[設定]>[ロケーションアクセス]に移動し、[Wi-Fiとモバイルネットワークのロケーション]を確認します