0

ロケーションアラームベースのアプリを作成しました。エミュレーターではすべてが正常に機能しています。ただし、実際のデバイスでは次のエラーが発生します。

シナリオ:

GPSをオンにしました。電話でアプリを開きました。ステータスバーにGPS記号がありません。アプリが強制終了しました。

このシナリオを修正するために、私は次のことを行っています

マップ、GPSEssentialsなどのアプリケーションを開きます。GPS値が修正されています。その後、アプリケーションを開きます。アプリは正常に動作しています。

以下に必要なコードを提供します。

私のOncreateメソッドで

fixlocation = orgManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);


@Override
protected void onResume() {
    super.onResume();
    orgManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1000, this);
    orgManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 1000, this);
    mo.enableCompass();
    mo.enableMyLocation();
}

/** Stop the updates when Activity is paused */
@Override
protected void onPause() {
    super.onPause();
    orgManager.removeUpdates(this);
    mo.disableCompass();
    mo.disableMyLocation();
}



@Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub

        //orgManager.removeUpdates(this);

        if (location != null) {
            currLatitude = location.getLatitude();
            currLongtitude = location.getLongitude();
}}

私は今何をする必要がありますか?

4

1 に答える 1

0
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

currLat = location.getLatitude();
currentLang = location.getLongitude();

これを試して、現在の場所を取得してください。

onLocationChanged は、デバイスの場所が変更された場合にのみ呼び出されますが、

アプリケーションを初めて起動するときに、このコードを使用できます。

于 2012-05-30T14:25:35.693 に答える