更新 2: 問題は解決しました
外に出て GPS_PROVIDER で信号を受信した後、NETWORK_PROVIDER で位置情報を取得するのにもう問題はありません....
私がそれを行う前にGoogleマップアプリが修正された理由と私のアプリが修正されなかった理由はまだわかりませんが、今では(銀河タブを再起動した後でも)動作し、ちょっと幸せです; )
更新: スレッドのタイトルが変更されました。投稿の下部にある編集を参照してください。
銀河のGPS位置を取得するために、このチュートリアル(http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/ )を試しましたタブがありますが、場所がわかりません....
すでに別のプロバイダーを使用しようとしましたが、これはまったく役に立ちません (GPS_PROVIDER、NETWORK_PROVIDER、PASSIVE_PROVIDER を試しました)。
奇妙なことは、公式の Google マップ アプリで場所を取得できることです。:\
AndroidManifest.xml の権限は次のように設定されています。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
私のアプリケーションが場所を取得しない理由を誰かが知っていますか?
編集:
GPS プロバイダーを使用すると、外にいるときに修正されます。しかし、NETWORK_PROVIDER または PASSIVE_PROVIDER で場所を取得できない理由がわかりません。
GPS が利用できない場合、Google マップ アプリはどのプロバイダーを使用しますか?
編集2:
コード (上記のチュートリアルに若干の変更を加えたもの):
package Firstdroid.Tutorial.Gps;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class UseGps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(getApplicationContext(), "Application started", Toast.LENGTH_SHORT).show();
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
// here I choose the location provider:
mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); // <---
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
loc.getLatitude();
loc.getLongitude();
String Text = "My current location is: " +
"Latitude = " + loc.getLatitude() +
"Longitude = " + loc.getLongitude() + " (PROVIDER: " + loc.getProvider() + ")";
Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(),
"Gps Enabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}/* End of Class MyLocationListener */
}/* End of UseGps Activity */