총 게시물 84건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

안드로이드 gps좌표를 TCP/IP로 비주얼 스튜디오로 받는데 질문드려요

글쓴이 : 련양갱 날짜 : 2015-06-03 (수) 14:33 조회 : 2448
 
  KG아이티뱅크 문의 백설화
네트워크 기초,자격증,취업준비 교육기관, 수강료할인&무료수강이벤트, 국비무료취업반
itleader.kr
  코딩교육전문기관 박인수
C언어,자료구조,C++,파이썬 코딩전문교육, 코딩역량테스트 대비, 저학년코딩교육
kgitbankedu.co.kr
  침수는 아이픽스맨 대구점
대구 동성로 침수폰 전문 사설수리의 명가 대구 아이픽스맨 무료주차
dgifixman.modoo.at/
신청하기


TCP_IP라는 클래스에서 GpsInfo라는 클래스에 있는 gps정보를 따와서 전송하려고 하는데
메인 클래스에서 이미 아래와 같이 GpsInfo클래스와 연결되있어서 또
    public GpsInfo(MainActivity mContext) {
        this.mContext = mContext;
        getLocation();
    }
이런식으론 클래스명만 TCP_IP로 바꾸면 연결이 안되는것 같아서 클래스 하나 더 만들어서 다시 해봤는데
connot resolve method getSystemService(java.lang.string)'
이라고 마우스 대면 나오고 getSystemService이 빨간색으로 나와서 막혔습니다.

TCP/IP라는 클래스는가 AsyncTask클래스라 안되는건지 알수 없고
이렇게 하지않고도 main클래스에 있는 변수값이나 GpsInfo에 있는 정보를 TCP/IP클래스로 따올수 있을까요

TCP_IP클래스의 WriteBytes로 쥐피에스값을 받고 싶어요

완전초보라서 잘 모르겠습니다 ㅠ상세히 아려주시면 감사하겠습니다.ㅠ


메인 코드

package kr.ac.inha.ideal.gpse;


import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {


    //버튼 및 텍스트뷰 변수 선언
     private Button startGetPoint;
     public static TextView txtLatitude;
     public TextView txtLongitude;
    //GPSTracker class
    private GpsInfo gps;
    private Button sendText;


  //



    TCP_IP tcp;



    public MainActivity() {
    }

    public MainActivity(TCP_IP tcp_ip) {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//연결

        //버튼 및 텍스트뷰 레이아웃 연동
        startGetPoint = (Button) findViewById(R.id.start_button);
        txtLatitude = (TextView) findViewById(R.id.Latitude);
        txtLongitude = (TextView) findViewById(R.id.Longitude);

        sendText = (Button) findViewById(R.id.tcpip);

        sendText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tcp = new TCP_IP(gps);
                //메인에서 한다는 의미
                tcp.execute(this);
            }
        });

        //GpsInfo 클래스 사용 선언
        gps = new GpsInfo(MainActivity.this);


        //버튼 클릭 구현 : GPS 정보를 보여주기 위한 이벤트 클래스 등록
        startGetPoint.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //위경도 변수 선언 및 위경도 값 지정
                double latitude = gps.getLatitude();
                double longitude = gps.getLongitude();

                //텍스트뷰에 위경도 값 입력
                txtLatitude.setText(String.valueOf(latitude));
                txtLongitude.setText(String.valueOf(longitude));


            }


        });


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public void execute(TCP_IP tcp_ip) {
    }

GpsInfo클래스

package kr.ac.inha.ideal.gpse;

import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;


public class GpsInfo extends Service implements LocationListener {


    private final MainActivity mContext;
    //현재 GPS 사용 유무
     boolean isGPSEnabled= false;
    //네트워크 사용유무
     boolean isNetworkEnabled= false;
    //GPS 상태값
     boolean isGetLocation= false;

    Location location;
    double latitude;    //위도
    double longitude;   //경도

    //최소 GPS 정보 업데이트 거리 10미터
    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;

    //최소 GPS 정보 업데이트 시간 밀리세컨이므로 2초
    private static final long MIN_TIME_BW_UPDATES = 2000;

    protected LocationManager locationManager;

    public GpsInfo(MainActivity mContext) {
        this.mContext = mContext;
        getLocation();
    }




    public Location getLocation() {
        try {
            locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);

            //GPS 정보 가져오기
           isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

            //현재 네트워크 상태 값 알아오기
            isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

            if (!isGPSEnabled && !isNetworkEnabled) {
                //GPS와 네트워크 사용이 가능하지 않을 때 소스 구현
            } else {
                if (isNetworkEnabled) {
                    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    if (locationManager != null) {
                        location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

                        if(location != null) {
                            //위도 경도 저장
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }

                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        if (locationManager != null) {
                            location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return location;
    }

    //GPS 종료
    public void stopUsingGPS(){
        if(locationManager != null){
            locationManager.removeUpdates(GpsInfo.this);
        }
    }

    //위도값
    public double getLatitude(){
        if (location !=null){
            latitude = location.getLatitude();
        }
        return latitude;
    }

    //경도값
    public double getLongitude(){
        if(location != null){
            longitude = location.getLongitude();
        }
        return longitude;
    }

    @Override
    public void onLocationChanged(Location location) {

    }

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

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}


TCP_IP클래스

package kr.ac.inha.ideal.gpse;

import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.location.Address;
import android.location.Location;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.support.v7.app.ActionBarActivity;
import junit.framework.TestCase;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Locale;



public class TCP_IP extends AsyncTask  {
    Context mContext;
    public TCP_IP(Context context){
        super();
        mContext=context;
    }


    private Gps2 gps;


    //서버 아이피주소 ,,큰따음표 사이에 아이피 입력
    protected static String SERV_IP="165.246.81.206";

    //서버포트,, 컴퓨터의 포트번호를 치면된다 보통 1-9999 5000번대가 비어서 지정 오류나면 4천번
    protected static int PORT= 5002;



    @Override
    protected Object doInBackground(Object[] params) {

        gps = new Gps2(TCP_IP.this);


        try {
            //IP주소 처리할때 사용하는 클래스

            InetAddress serverAddr = InetAddress.getByName(SERV_IP);

            //소켓 사용

            Socket sock = new Socket(serverAddr, PORT);

            //전송하는 문자열을 만든다, 소켓에 데이터를 얻겠다.


            DataOutputStream Output = new DataOutputStream(sock.getOutputStream());

            //소켓을통해 서버에 글을써준다

            try {
                WriteSocket(Output);
            } catch (IOException e) {
                e.printStackTrace();
            }

            //try 안쪽 명령실행시 어찌 처리하냐? 예외부분을 의미


        }catch(IOException e){
            e.printStackTrace();
        }


        return null;
    }


    //문자열 전송 ""안에 전송하고자하는 내용!


    private void WriteSocket(DataOutputStream output) throws IOException{


        output.writeBytes(String.valueOf(gps.getLatitude()));


    }










추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

hi
이전글  다음글  목록 글쓰기

총 게시물 84건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 추천 조회
공지  문제/에러 해결게시판의 성격에 맞는 글들만 … 5 수아 02-26 2 4132
안드로이드  이 게시판의 용도 9 카이로 07-10 8 5656
84 하이브리드  이클립스 로그캣보는데 문자가 이상하게 나… 오룡 06-29 0 114
83 안드로이드  자바소스를 안드로이드용으로 변경 도움 부… 1 오마로 01-09 0 805
82 안드로이드  앱이 실행중이지 않을때 FCM 푸시 수신 후 노… 뜬구름 11-06 0 674
81 안드로이드  소스 수정 도와 주실분~~~ 2 맘여린왕자 10-16 0 692
80 안드로이드  (왕초보)SQLite를 이용한 고객관리 정보 어플 … 어플메이커 10-25 0 1218
79 안드로이드  (안드로이드+php) 이미지/텍스트 전송하는거 … 1 sujji2 09-22 0 1769
78 안드로이드  리스트뷰 인텐트 질문이요 2 sujji2 08-08 0 1591
77 안드로이드  카드뷰 인데 궁금한게있씁니다 마쉘로 07-28 0 1151
76 안드로이드  완전 초짜 질문입니다. 2 겨울이야기 07-08 0 1846
75 안드로이드  소프트키보드를 사용해서 천지인 키보드를 … 재와니 03-30 0 2294
74 안드로이드  안드로이드 갤러리에서 사진 가져오기 ㅠㅠ 2 히미여소사라 02-03 0 4355
73 안드로이드  안드로이드 스튜디오 빨간줄표시 osd0909 12-11 0 2621
72 안드로이드  java.lang.RuntimeException: Unable to start activity Compone… 1 레드썬 11-24 0 1671
71 안드로이드  안드로이드 스튜디오 AVD실행시에 에러입니다… 나이th 11-15 0 1659
70 안드로이드  구글맵을 사용하려고 하는데 진행이 안되요 흥그븡그 09-13 0 1797
69 안드로이드  안드로이드 스튜디오에서 drawable.. 4 elite1111 08-13 0 2585
68 웹앱  웹앱에서 동영상 보기 짱구짱구짱구 07-01 0 1644
67 웹앱  웹사이트 임포트후 전화걸기 문제입니당....… 2 짱구짱구짱구 07-01 0 2406
66 안드로이드  웹사이트 임포트후 전화걸기 문제입니당....… 짱구짱구짱구 07-01 0 1672
65 웹앱  웹사이트 임포트후 전화걸기 문제입니당....… 9 짱구짱구짱구 07-01 0 2373
 1  2  3  4  5  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기