마스터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
...