package com.example.googlemaptest;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends FragmentActivity implements LocationListener{
private GoogleMap mmap;
private LocationManager locationManager;
private String provider;
LatLng loc = new LatLng(35.179434, 128.555509);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GooglePlayServicesUtil.isGooglePlayServicesAvailable(MainActivity.this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, true);
if(provider==null){
new AlertDialog.Builder(MainActivity.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, MainActivity.this);
setUpMapIfNeeded();
}
Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(MainActivity.this, WIFIScanner.class);
startActivity(intent);
}
});
}
private void setUpMapIfNeeded() {
if (mmap == null) {
mmap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map )).getMap();
mmap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.duck)).position(loc));
if (mmap != null) {
setUpMap();
}
}
}
@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, MainActivity.this);
setUpMapIfNeeded();
}
break;
}
}
private void setUpMap() {
mmap.setMyLocationEnabled(true);
mmap.getMyLocation();
}
boolean locationTag=true;
@Override
public void onLocationChanged(Location location) {
if(locationTag){
Log.d("myLog" , "onLocationChanged: !!" + "onLocationChanged!!");
double lat = location.getLatitude();
double lng = location.getLongitude();
Toast.makeText(MainActivity.this, "위도 : " + lat + " 경도: " + lng , Toast.LENGTH_SHORT).show();
locationTag=false;
}
}
}
글자수 제한떄문에 코드 일부분을 빼고 적었습니다
위코드에서 마크이벤트를 넣을려구하는데 밑에 코드를 어느 부분에 넣어야하나요?
onCreate나 다른곳에 넣고 돌려봐도 구동되지 않았습니다
아니면 코드가 잘 못된건가요?
mmap.setOnMarkerClickListener(new OnMarkerClickListener(){
@override
public boolean onMarkerClick(Marker arg0){
Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener(){
publick void onClick(View v){
Intent intent = new Intent(MainActivity.this, WIFIScanner.class);
startActivity(intent);
}
});
ruturn false;
}
});