Android GPS 상세 설명 및 예시 코드

5558 단어 AndroidGPS
LBS(Location Based Services)직역 하면 지리 적 위 치 를 바탕 으로 하 는 서비스 이다.이 안에 적어도 두 가지 의미 가 있다.첫째,현재 의 지리 적 위 치 를 쉽게 얻 을 수 있어 야 한다.예 를 들 어 위도 해발 등 이 있 고 다른 하 나 는 현재 의 위 치 를 바탕 으로 부가 가치 서 비 스 를 제공 하 는 것 이다.예 를 들 어 근처 의 주유소,식당,호텔 등 이다.이 안의 첫 번 째 단계:사용자 의 현재 위 치 를 가 져 오 면 우 리 는 안 드 로 이 드 의 GPS 포 지 셔 닝 서비스 로 얻 을 수 있 습 니 다.안 드 로 이 드 는 네트워크 기반 포 지 셔 닝 서비스 와 위성 기반 포 지 셔 닝 서비스 두 가 지 를 제공 했다.설치->위치 와 안전 설정 의 세 번 째 항목 은 마지막 증강 형 GPS 가 위성 을 신속하게 찾 는 것 을 보조 하기 위 한 것 이다. 

그러면 우 리 는 현재 위 치 를 가 져 오 는 기능 을 실현 하기 위해 간단 한 프로그램 을 작성 합 니 다.
1,새 항목 Lesson 26GPSLocation
2.MainActivity.java 의 코드 는 다음 과 같 습 니 다.

package basic.android.lesson26;

import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    TextView tv1;
    Location location;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //   UI  
        Button b1 = (Button) findViewById(R.id.button1);
        tv1 = (TextView) findViewById(R.id.textView1);

        //   LocationManager  
        LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

        //   Criteria  
        Criteria criteria = new Criteria();
        //         Criteria.ACCURACY_COARSE     , Criteria.ACCURACY_FINE     
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        //            Altitude
        criteria.setAltitudeRequired(true);
        //            Bearing
        criteria.setBearingRequired(true);
        //            
        criteria.setCostAllowed(true);
        //         
        criteria.setPowerRequirement(Criteria.POWER_LOW);

        //   GPS     
        String bestProvider = lm.getBestProvider(criteria, true);
        Log.i("yao", "bestProvider = " + bestProvider);

        //       
        location = lm.getLastKnownLocation(bestProvider);

        //           
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                updateLocation(location);
            }
        });

        //      
        LocationListener locationListener = new LocationListener() {

            //         
            @Override
            public void onLocationChanged(Location location) {
                Log.i("yao", location.toString());
                updateLocation(location);
            }

            // Provider     
            @Override
            public void onProviderDisabled(String arg0) {
                Log.i("yao", arg0);

            }

            // Provider     
            @Override
            public void onProviderEnabled(String arg0) {
                Log.i("yao", arg0);
            }

            // Provider       
            @Override
            public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
                Log.i("yao", "onStatusChanged");
            }
        };

        // 500      ,      
        lm.requestLocationUpdates(bestProvider, 500, 0, locationListener);

    }

    //       
    private void updateLocation(Location location) {
        if (location != null) {
            tv1.setText("        :" + location.toString() + "
\t :" + location.getLongitude() + "
\t :" + location.getLatitude()); } else { Log.i("yao", " Location"); } } }
3.main.xml 코드 를 붙 이지 않 겠 습 니 다.버튼 하나 와 텍스트 상자 만 있 습 니 다.잠시 후에 캡 처 를 보면 알 수 있 습 니 다.
4、AndroidManifest.xml 에 권한 을 추가 해 야 합 니 다:

<!--        -->
<uses -permission="" android:name="android.permission.ACCESS_COARSE_LOCATION"></uses>
<!--        -->
<uses -permission="" android:name="android.permission.ACCESS_FINE_LOCATION"></uses>
<!--        -->
<uses -permission="" android:name="android.permission.ACCESS_MOCK_LOCATION"></uses>
<!--        -->
<uses -permission="" android:name="android.permission.INTERNET"></uses>
5.실제 컴퓨터 에서 실행 프로그램 을 컴 파일 하고 결 과 를 봅 니 다.

여기 서 설명 하 자 면 제 가 시 뮬 레이 터 에 시 뮬 레이 터 데 이 터 를 제출 하 는 데 성공 하지 못 했 고 실제 컴퓨터 에서 테스트 하 는 것 도 순 조 롭 지 못 했 습 니 다.하드웨어 와 관련 되면 알 수 없 는 오류 가 발생 할 수 있 습 니 다.
이상 은 안 드 로 이 드 GPS 의 소개 와 간단 한 예 입 니 다.필요 한 학생 들 을 도 울 수 있 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기