Androidフォンの現在の位置を取得し、経度と緯度をトーストに表示しようとしています。ここに私が書いた関数があります。コードをデバッグしているときに、コントロールが onLocationChanged 関数内に入らないことがわかりました。
次の Android ドキュメントから、「locationMgr.requestLocationUpdates」を呼び出すと、コールバック関数 onLocationChanged を呼び出す必要があるように見えます。しかし、それは私のコードでは起こらないようです。 http://developer.android.com/training/basics/location/currentlocation.html
携帯電話の GPS がオンになっていることを確認しました。次のコードで何が問題なのかわかりません。助けてください。
public void getCurrentLocation(){
LocationManager locationMgr;
locationMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// A new location update is received. Do something useful with it
String latitude = "latitude: " + location.getLatitude();
String longitude = "longitude: " + location.getLongitude();
String toastString = "location is" + latitude + "," +longitude;
Toast.makeText( getApplicationContext(),toastString,Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
// No code here
}
@Override
public void onProviderEnabled(String provider) {
// No code here
}
@Override
public void onStatusChanged(String provider, int status,Bundle extras)
{
// No code here
}
};
locationMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0, listener);
}
マニフェスト ファイルには次の 2 行もあります。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
ご協力ありがとうございました。
私は Eclipse を使用しており、私の電話 (OS: Thuderbolt) には API レベル 15、ターゲット 4.0.4 があります。