私はアンドロイドに不慣れです。ですから、私の質問が単純なものである場合はお詫び申し上げます。
私はGPSサービスのみを使用してユーザーの位置を取得しようとするAndroidアプリを開発しています(インターネットがなくてもAndroidデバイスで実行する必要があるアプリを開発しているため)。
私のコードを以下に示します。
私の活動:
public class MyView extends Activity implements OnClickListener, Runnable
{
LocationManager itsLocationManager;
LocationListener itsLocationListener;
@Override
protected void onCreate(Bundle savedInstanceState)
{
itsLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
itsLocationListener = new MyLocationListener(this, itsLocationManager);
getLocationAndSendMessage();
}
private void getLocationAndSendMessage()
{
try
{
itsLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, itsLocationListener);
}
catch (Exception theException)
{
theException.printStackTrace();
ToastMsgUtil.showErrorMessage("Problem in retrieving your current location! Please try again.", this);
}
}
MyLocationListener.java:
public class MyLocationListener implements LocationListener
{
Context itsContext;
LocationManager itsLocationManager;
public MyLocationListener(Context theContext, LocationManager theLocationManager)
{
itsContext = theContext;
itsLocationManager = theLocationManager;
}
@Override
public void onLocationChanged(final Location theLocation)
{
//My Location processing code
itsLocationManager.removeUpdates(SafemateLocationListener.this);
}
}
AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
上で述べたように、私はGPSを介してのみ位置を取得する必要があります(ユーザーのモバイルにはインターネットがないため)。
- デバッグ時に、 LocationManager.GPS_PROVIDERを使用しているときに、onLocationChangedメソッドで位置の更新を受信していないことがわかりました。
- ただし、LocationManager.NETWORK_PROVIDERを試してみると、場所の更新が表示されます。
上記のコードで私が間違ったことを誰かが言ってもらえますか?私は何かを逃したことがありますか?
助けてください。ありがとうございました。