2011-07-13 9 views
2

私のアプリケーションでは、1つのボタンがあります。そのボタンをクリックすると、現在の場所が表示されます。この現在の位置に基づいて私はいくつかの操作をしています。デバイスでは正常に動作しています。しかし、エミュレータでは、エミュレータのデフォルトの緯度と経度の値を使用している理由は現在の場所が得られていません。しかし、私はエミュレータとデバイスを区別したい。つまり、ジオコードの場所を取得するという意味です。エミュレータで実行していると仮定すると、デフォルトの緯度と経度の値が使用されます。それをプログラマ的に実装する方法。誰も私を助けることができます。android-エミュレータとデバイスをプログラム的に区別する方法

おかげ

+0

[Androidアプリケーションがエミュレータで実行されているときはどうすれば検出できますか?](http://stackoverflow.com/questions/2799097/how-can-i-detect-when-an-android-application -is-in-the-emulator) –

答えて

0

私はデジタルコンパスとまったく同じ問題がありました。私が書き、以下の方法を使用して、それを解決した:これは同様にあなたのために働くだろう

public static boolean areOrientationSensorsAvailable(Context ctx) { 
    final SensorManager manager = (SensorManager) ctx.getSystemService(Context.SENSOR_SERVICE); 
    final List<Sensor> sensorsMagnet = manager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD); 
    final List<Sensor> sensorsAccel = manager.getSensorList(Sensor.TYPE_ACCELEROMETER); 

    return (sensorsMagnet.size() != 0) && (sensorsAccel.size() != 0); 
} 

:あなたがエミュレータ上にある何のセンサーがありません場合。 これは「クリーン」ではありませんが(リリースされたアプリケーションには適していませんが)、これはテストに適しています。

関連する問題