//起動時、画面復帰時に位置確認
//画面復帰時にも位置確認をするため、onCreateでなく、onResumeに書く
@Override
public void onResume(){
super.onResume();
//ロケーションマネージャの設定
LocationManager lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
//10秒ごとに10m変化を通知
//GPSとネットワーク どちらでも可能。GPSの方が精度が高い
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,10000,10,this);
// lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,10000,10,this);
//最新の位置情報を取得
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
getLoc(location,);
}
//位置が変わったら再取得する
public void onLocationChanged(Location location) {
getLoc(location);
}
//位置情報取得有効化
public void onProviderEnabled(String provider) {
}
//位置情報取得無効化
public void onProviderDisabled(String provider) {
showDialog(Activity.this,"Map","位置情報取得 無効");
}
//位置情報状態変更
public void onStatusChanged(String provider,
int status,Bundle extras) {
}
//位置確認
private void getLoc(Location location){
if (location !=null){
//緯度と経度の取得
double cLat = location.getLatitude();
double cLong = location.getLongitude();
}else {
errDialog("現在位置が取得できませんでした。");
}
}
@Override
public void onStart() {
super.onStart();
}
@Override
public void onStop() {
super.onStop();
//ロケーションマネージャー停止
lm.removeUpdates(this);
}
protected boolean isRouteDisplayed() {
return false;
}
Manifestの設定
//ネットワーク許可
<uses-permission android:name="android.permission.INTERNET" />
//GPS
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
//エミュレータ用
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
0 件のコメント:
コメントを投稿