마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

구글맵v2 익셉션 질문드립니다. [closed]

0 추천

 


public class HHRS_main_2 extends FragmentActivity implements OnClickListener,
		LocationListener {

	private Button btnMain_1;
	private Button btnMain_2;
	private Button btnMain_3;

	GoogleMap mmap;
	LocationManager locationManager;
	String provider;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main_2);

		setLayout();

		GooglePlayServicesUtil.isGooglePlayServicesAvailable(HHRS_main_2.this);
		locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		Criteria criteria = new Criteria();
		provider = locationManager.getBestProvider(criteria, true);

		if (provider == null) { 
			new AlertDialog.Builder(HHRS_main_2.this)
					.setTitle("위치서비스 동의")
					.setNeutralButton("이동",
							new DialogInterface.OnClickListener() {
								@Override
								public void onClick(DialogInterface dialog,
										int which) {
									startActivityForResult(
											new Intent(
													android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),
											0);
								}
							})
					.setOnCancelListener(
							new DialogInterface.OnCancelListener() {
								@Override
								public void onCancel(DialogInterface dialog) {
									finish();
								}
							}).show();
		} else {
			
			locationManager.requestLocationUpdates(provider, 1, 1,
					HHRS_main_2.this);
			setUpMapIfNeeded();
		}

	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		switch (requestCode) {
		case 0:
			locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
			Criteria criteria = new Criteria();
			provider = locationManager.getBestProvider(criteria, true);
			if (provider == null) {
				finish();
			} else {
				locationManager.requestLocationUpdates(provider, 1L, 2F,
						HHRS_main_2.this);
				setUpMapIfNeeded();
			}
			break;
		}
	}

	@Override
	public void onBackPressed() {
		this.finish();
	}

	@Override
	protected void onResume() {
		super.onResume();
		setUpMapIfNeeded();

	}

	@Override
	protected void onPause() {
		super.onPause();
		locationManager.removeUpdates(this);
	}

	private void setUpMapIfNeeded() {
		if (mmap == null) {
			mmap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
			
			Toast.makeText(HHRS_main_2.this, "mmap == null", 1000).show();
			if (mmap != null) {
				setUpMap();
			}
		}
	}

	private void setUpMap() {
		mmap.setMyLocationEnabled(true);
		mmap.getMyLocation();

	}

	boolean locationTag = true;

	@Override
	public void onLocationChanged(Location location) {
		if (locationTag) {
			double lat = location.getLatitude();
			double lng = location.getLongitude();

			Toast.makeText(HHRS_main_2.this,
					"위도  : " + lat + " 경도: " + lng, Toast.LENGTH_SHORT).show();
			locationTag = false;
		}

	}

	@Override
	public void onProviderDisabled(String provider) {
	}

	@Override
	public void onProviderEnabled(String provider) {
	}

	@Override
	public void onStatusChanged(String provider, int status, Bundle extras) {
	}

	private void setLayout() {

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
	
		}
	}
}

 

질문을 종료한 이유: 글자수 제한 때문에 질문을 못올립니다.
Hui (590 포인트) 님이 2013년 6월 26일 질문
Hui님이 2013년 6월 26일 closed
...