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

자바 이클립스(안드로이드) 앱 제작중인데 소스에서 실행이 안됩니다 부탁드립니다.

0 추천
package me.blog.netrance.android.getting_location;


import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;


public class MainActivity extends Activity {


    //----------------------------------------------------------------------
    // Views


    private EditText editTextLatitude = null ;
    private EditText editTextLongitude = null ;
    private Spinner spinnerLocationProvider = null ;


    //----------------------------------------------------------------------
    // Fields regarding location


    private String locationProvider = null ;
    private Location lastKnownLocation = null ;


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


        // Access views.
        editTextLatitude = (EditText)findViewById(R.id. editTextLatitude);
        editTextLongitude = (EditText)findViewById(R.id. editTextLongitude);
        spinnerLocationProvider = (Spinner)findViewById(R.id.spinnerLocationProvider );
        Button buttonGetLocation = (Button)findViewById(R.id. buttonGetLocation );


        // Set listeners to view(s).
        buttonGetLocation.setOnClickListener( buttonRefreshClickListener );


        // Set views.
        String[] locationProviders = { "GPS" , "Network" };
        ArrayAdapter<CharSequence> adapterOfSpinnerLocationProvider = newArrayAdapter<CharSequence>(
                this ,
                android.R.layout. simple_spinner_item ,
                locationProviders
        );
        adapterOfSpinnerLocationProvider.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item);
        spinnerLocationProvider .setAdapter(adapterOfSpinnerLocationProvider);
    }


    private OnClickListener buttonRefreshClickListener = new OnClickListener() {


        @Override
        public void onClick(View v) {
            locationProvider = ((String)spinnerLocationProvider .getSelectedItem()).toLowerCase();


            // Update location to get.
            LocationManager lm = (LocationManager)getSystemService(Context. LOCATION_SERVICE);
            lm.removeUpdates( locationListener );    // Stop the update if it is in progress.
            lm.requestLocationUpdates( locationProvider , 0, 0, locationListener );
        }


    };


    private LocationListener locationListener = new LocationListener() {


        @Override
        public void onLocationChanged(Location location) {
            LocationManager lm = (LocationManager)getSystemService(Context. LOCATION_SERVICE);


            // Get the last location, and update UI.
            lastKnownLocation = location;
            editTextLatitude .setText("" + lastKnownLocation .getLatitude());
            editTextLongitude .setText("" + lastKnownLocation .getLongitude());


            // Stop the update to prevent changing the location.
            lm.removeUpdates( this );
        }


        @Override
        public void onProviderDisabled(String provider) {}


        @Override
        public void onProviderEnabled(String provider) {}


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


    };


}

안드로이드 초보자입니다, 자바 소스코드 인데 소스코드를 입력하면 이미지는 나오는데 막상 실행하면 소스코드에 오류

가 납니다. 정말 초보자라 그런지 책을 보면서 이렇게나마 입력을 하고 정 몰라서 이렇게 글을 남깁니다. 소스코드 해석도

꼭 좀 부탁 드립니다.

 

스타일이야 (170 포인트) 님이 2015년 4월 6일 질문

2개의 답변

0 추천
책을 보면서 코드를 그대로 작성하셨다면,

androidmanifest.xml에

uses-permission 문제가 아닐까요? gps랑 network_provider 사용하시는 것 같은데, 퍼미션에 이와 관련된 줄을 넣어주세요. 참고로 로그캣을 같이 올리시면 좋겠네용.
Djleeee (13,180 포인트) 님이 2015년 4월 6일 답변
0 추천
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

GPS 위도 경도 쯤을 구하시는거 같은데

코드는 다 안 읽어 봤지만 우선

androidmanifest.xml에 저위 두줄을 입력해야 사용가능할겁니다.

 

 

JOBG (610 포인트) 님이 2015년 4월 7일 답변
...