3

スマートフォンアプリをテストする必要がある状況があります。目的は、ジオロケーションに基づいてアプリを無効にすることです。たとえば、アプリを介してビデオを「ライブ」ストリーミングしていて、ユーザーが特定の制限された場所に移動した場合はストリーミングを無効にし、ユーザーが許容可能な地質領域に移動したときにオンにしたいとします。

テストの部分は、すべての電話で5台の電話が私の前にあると言うことができ、それらで実行されているアプリをテストして、制限区域に移動するとアプリがオフになることをテストしたいと思います。これはどのように達成できますか?

編集:- 実際のシナリオ-Androidアプリのスタジアム近くのエリアに表示されるべきではない試合のライブストリーミング。そのため、ユーザーがアプリの[再生]ボタンを押し、その特定の期間、電話が物理的にビデオ制限ゾーンにある場合、ビデオをその携帯電話にストリーミングしないでください。

何か考え...意見..?

ありがとう

4

5 に答える 5

3

Android では、DDMS、telnet、または LocationManager を介して、アプリケーションにモックの場所を提供する複数のオプションがあります。

DDMS

AndroidSDK/tools/ フォルダーから DDMS を起動します。場所をスプーフィングするデバイスを選択し、 に進みEmulator Controlます。タブの下部に、場所を手動で設定するオプションと、偽装する場所を見つける必要があります。

ADB/Telnet

経由ですべてのデバイスを一覧表示しますadb devices。これから、次のような出力が得られるはずです。

List of devices attached
emulator-5554 device

次に、指定されたポートに telnet します。

telnet localhost 5554

これにより、Android コンソールが開きます。そこで、geo fixコマンドを使用して場所を設定できます

geo fix $lon $lat

LocationProvider

setTestProviderLocationのメソッドを使用して、テスト用の場所を指定できます。LocationProvider

LocationManager lm = (LocationManager)this.getContext().getSystemService(Context.LOCATION_SERVICE);
String mocLocationProvider = "Test";
locationManager.addTestProvider(mocLocationProvider, false, false,
                    false, false, true, true, true, 0, 5);
locationManager.setTestProviderEnabled(mocLocationProvider, true);

Location mockLocation = new Location(mocLocationProvider);
mockLocation.setLatitude(location.getLatitude());
mockLocation.setLongitude(location.getLongitude()); 
mockLocation.setAltitude(location.getAltitude()); 
mockLocation.setTime(System.currentTimeMillis()); 
locationManager.setTestProviderLocation( mocLocationProvider, mockLocation);

ここから得たこの方法

さらに、許可を設定することを忘れないでください

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">
于 2012-11-07T01:37:41.503 に答える
2

XCode に接続されたデバイスで iOS アプリケーションをデバッグする場合、XCode インターフェイスの下端にある小さな矢印をクリックして、デバイスの gps 位置をオーバーライドできます。

ここに画像の説明を入力

いくつかのデフォルトの場所があり、File.. New.. iOS/Resource, "GPX File" で独自の場所を追加できます。

ここに画像の説明を入力

GPX ファイルは次のとおりです。

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 

    <wpt lat="45.463965" lon="9.180247">
         <name>Milan, Italy</name>
    </wpt>

</gpx>

複数の場所 (トラック) を指定できますが、明らかにタイミングを制御することはできません。

<?xml version="1.0" encoding="UTF-8"?>
<gpx>
    <wpt lat="52.373" lon="4.871"></wpt>
    <wpt lat="52.374" lon="4.872"></wpt>
    <wpt lat="52.375" lon="4.871"></wpt>
</gpx>

ただし、位置シーケンスをデバイスにプログラムで送信することにより、プロセスを自動化することに関心があるかもしれません。アプリのどこかで、デリゲートに送られる CLLocationManager インスタンスからメッセージを受信して​​います。テストするときは、CLLocationManager をサブスクライブしないでください。代わりに、偽のロケーションをデリゲートに送信する偽のロケーション マネージャー インスタンスを作成します。

[delegate locationManager:nil didUpdateToLocation:newLocation fromLocation:oldLocation];

見る:

iPhone Simulator で位置情報の更新をシミュレートする

「startMonitoringSignificantLocationChanges」のロケーション変更のシミュレーション

と:

https://github.com/futuretap/FTLocationSimulator

https://github.com/johnmckerrell/LocationManagerSimulator

于 2012-11-07T02:36:27.413 に答える
0

あなたが根ざしたデバイスを使用している場合、特に開発者メニューでシミュレートされた場所を許可する方法があります。この偽のGPSアプリ(Android)のようなアプリもチェックしてください

于 2012-11-07T01:36:12.570 に答える
0

Chrome DevTools を使用すると、はるかに簡単になります。

  • Chrome/ium DevTool を開く
  • Command+Shift+P (Mac) または Control+Shift+P (Windows、Linux、Chrome OS) を押して、コマンド メニューを開きます。
  • センサータブを開く
  • あなたの場所を選択してください(場所のリストはカスタムです:)

ここに画像の説明を入力

于 2019-06-13T06:58:12.170 に答える
0

よく理解できたかどうかわかりませんが、場所を変更してアプリの無効化部分が機能するかどうかをテストしたい場合は、iPhone シミュレーターが役立つかもしれません。

シミュレーターの位置情報は、香港やロンドンなど、あらかじめ決められた重要な場所に設定できます。それらの制限の 1 つを作成し、それをテストします。

場所をシミュレートするには、xcode で設定する必要があります。デバッグ コントロール ボタンの近くにある矢印のようなボタンをクリックします。

于 2012-11-07T01:27:02.853 に答える