소셜 미디어 Android 앱 개발 : 위치 - 인형 시작 방법

Android 앱 개발 : 위치 - 인형 시작 방법

차례:

비디오: [자막] 안드로이드 강좌 - 안드로이드 앱 만들기를 처음 시작하는 분을 위한 영상( 안드로이드 스튜디오 기본 사용 방법) 2024

비디오: [자막] 안드로이드 강좌 - 안드로이드 앱 만들기를 처음 시작하는 분을 위한 영상( 안드로이드 스튜디오 기본 사용 방법) 2024
Anonim

많은 Android 앱은 사용자 환경에 위치 정보를 제공하여 사용자에게 유용한 혜택을 제공합니다. 사용자가지도에서 자신의 위치를 ​​표시하는 것처럼 간단하거나 GPS 기반 백그라운드 알림을 제공하는 것과 같이 좀 더 복잡한 것이 든간에 앱에 위치 서비스를 추가하는 것은 종종 사용자가 기대하는 것입니다.

Android 앱에 위치를 추가하는 방법에는 여러 가지가 있습니다. Lollipop에서 가장 일반적인 것 중 일부는

  • 사용자의 현재 도시 또는 번지를 표시합니다. 이를 역 지오 코딩이라고합니다.

  • 사용자의 위치를지도에 표시하는 경우와 같이 사용자의 위치를 ​​적극적으로 추적합니다.

  • 지오 펜스를 설정하여 사용자가 도착하거나 위치를 떠날 때 알림을받습니다.

  • 사용자의 위치를 ​​추적하여 활동 인식을 수행하고 보행, 자전거 타기 또는 운전 중 여부를 결정합니다.

  • 블루투스를 사용하여 사용자가 iBeacon 근처에 있는지 여부를 감지합니다.

이 기사는 사용자의 위치를 ​​모니터링하고 현재 위치를 TextView에 표시하는 가장 일반적인 위치 사용 방법 중 하나를 보여줍니다.

앱에서 위치를 설정하려면 네 가지 작업이 필요합니다.

  1. 빌드 구성 업데이트.

  2. Google Play에 연결을 엽니 다.

  3. 위치 업데이트를 구독하십시오.

  4. 사용자의 주소를 표시합니다.

빌드 구성을 업데이트하는 방법

Android에는 Android에서 OS에 기본 제공되는 위치 API 세트가 있습니다. 위치 패키지. 이러한 API는 더 이상 유지 관리되지 않으므로 새로운 Google Play 서비스 API를 사용하여 대신 사용자의 위치를 ​​가져와야합니다.

Google Play 서비스 위치 API를 프로젝트에 추가하려면 빌드에 다음 종속성을 지정합니다. 구성 파일:

종속성 { 컴파일 ' com. 구글. 기계적 인조 인간. gms: play-services-location: 6. 5. 87 ' }

다음으로 AndroidManifest에 다음을 추가합니다. ACCESS_FARAL_LOCATION

 " android 액세스 권한 ACCESS_FINE_LOCATION "  " @ integer / google_play_services_version "  ACCESS_COARSE_LOCATION 권한은 사용 가능한 경우 Wi-Fi 및 셀 타워 정보를 사용하여 대략 도시 크기의 위치 업데이트를 제공합니다. ACCESS_FINE_LOCATION 권한은 휴대 전화의 GPS를 사용하여 훨씬 더 높은 해상도의 정보를 얻을 수 있지만 배터리 소모는 더 커집니다.앱에 거친 위치 만 있으면 ACCESS_COARSE_LOCATION 권한 만 요청하는 것이 좋습니다. 실제로 대부분의 앱은 두 가지 권한을 모두 원합니다. FusedLocationProvider라는 LocationProvider를 사용하기 때문에 일반적으로 두 가지 권한을 모두 요청해야합니다. FusedLocationProvider는 Wi-Fi, 셀 타워 및 GPS 위치 제공 업체를 자동으로 선택하여 최저 비용으로 최상의 정확성을 제공합니다. 정확한 위치 정보가 필요 없다는 것을 알고 있다면 ACCESS_FINE_LOCATION 권한을 제거하는 것을 고려할 수 있지만 셀 타워 나 Wi-Fi 액세스 권한이없는 장소에서는 앱이 제대로 작동하지 않을 수 있습니다. 메타 데이터 태그는 Google Play 서비스 라이브러리를 사용할 때마다 필요합니다. Google Play에 연결하는 방법 위치 API는 매우 간단하지만이를 사용하려면 Google Play 서비스 API를 설정해야하며 사용하기가 조금 더 복잡합니다. Google Play 서비스에 대한 연결을 설정하려면 활동 또는 단편에 다음을 추가합니다. // 위치 서비스 용 Google API 클라이언트 GoogleApiClient googleApiClient; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); googleApiClient = new GoogleApiClient. 작성기 (getActivity ()). addConnectionCallbacks (this). addOnConnectionFailedListener (this). addApi (LocationServices. API). 짓다(); …} @Override public void onStart () {super. onStart (); googleApiClient. 잇다(); } @Override public void onStop () {

googleApiClient. disconnect ();

슈퍼.

이 코드는 onCreate ()에 Google Play 서비스에 연결하기 위해 새 GoogleApiClient 객체를 만든 다음 onStart ()에서 연결하고 onStop ()에서 연결을 끊습니다. GoogleApiClient에는 연결이 설정되었을 때 알릴 수있는 콜백 객체가 필요하므로 콜백을 액티비티 또는 프래그먼트에 추가해야합니다. TaskEditFragment에 대한 콜백을 임의의 조각 활동에 추가 할 수 있습니다.

ConnectionCallbacks, OnConnectionFailedListener

@Override

public void onConnected (Bundle connectionHint) { // Google Play에 연결됨 서비스! // 여기서 // 업데이트 위치를 묻는 것입니다. }

@Override

public void onConnectionSuspended (int cause) {
// Google Play 연결이 중단되었습니다. // onConnected ()가 호출 될 때까지 Google // API에 의존하는 UI 구성 요소를 모두 비활성화합니다. // //이 예제에서는 여기에서 아무 것도하지 않아도됩니다. ' @Override public void onConnectionFailed (ConnectionResult result) { //이 콜백은 와 연결을 시도하는 동안 발생할 수있는 오류 처리 //에 중요합니다. > // Google. // // 앱이 위치 // 업데이트없이 제대로 작동하지 않으면 ' 연결을 처리하는 것이 중요합니다. // 오류가 발생했습니다. // https: // developer를 참조하십시오. 기계적 인조 인간. co.kr / google / auth / api-client. html // // Google에 연결할 때 오류 처리에 대한 자세한 내용은 //을 참조하십시오. // // 위치 정보는이 앱에서 선택 사항이므로 // 연결 오류는 여기에서 안전하게 무시할 수 있습니다. } } 축하합니다! 활동 또는 프래그먼트가 중지되면 자동으로 연결을 끊을 Google Play 서비스에 대한 연결을 올바르게 설정했습니다. 다음 단계는 위치 업데이트를 요청하는 것입니다. 

위치 업데이트 구독 방법 어려운 부분을 겪었습니다. Google Play 서비스에 성공적으로 연결되면 위치 업데이트 수신을 시작할 수 있습니다. 먼저 위치 API에 얼마나 자주 그리고 얼마나 정확한 위치 업데이트가 필요한지 알려줄 필요가 있습니다. 지도에서 사용자의 현재 위치를지도에 표시해야하는 경우 매우 정확하고 신속한 업데이트가 필요하므로 사용자는 이동하는 위치를 볼 수 있습니다. 대부분의 앱은 업데이트 빈도가 적어이 예제에서 사용할 것입니다. 다음 필드를 프래그먼트 또는 활동에 추가하십시오. // LocationRequest는 LocationRequest locationRequest = new LocationRequest ()를 업데이트하는 빈도를 정의합니다. setInterval (30000). setPriority (LocationRequest. PRIORITY_BALANCED_POWER_ACCURACY); 이 locationRequest는 대략 30 초마다 새로운 위치 업데이트를 요청하고 양호한 정확성과 적당한 전력 소비의 균형을 맞추기 위해 설정됩니다. 배터리 소모량을 줄이려면 PRIORITY_LOW_POWER를 시도하거나 더 높은 정확도를 원하면 PRIORITY_HIGH_ACCURACY를 시도하십시오. 백그라운드에서 매우 드물게 업데이트되는 앱에 대해서도 PRIORITY_NO_POWER를 사용할 수 있으며 다른 앱에서 요청한 위치 업데이트를 피기 백하고 싶을 수도 있습니다! 사용할 수있는 다양한 옵션에 대한 자세한 내용은 Android 개발자 사이트에서 LocationRequest를 확인하십시오. 위치 업데이트 수신을 시작하려면 방금 생성 한 onConnected () 메소드에 다음을 추가하십시오. @Override public void onConnected (Bundle connectionHint) {// Google Play 서비스에 연결되었습니다! // 위치 업데이트 구독을 시작합니다. FusedLocationApi. requestLocationUpdates (googleApiClient, locationRequest, this); }

방금 구성한 LocationRequest를 사용하여 FusedLocationApi가 앱 위치 업데이트를 보내도록 요청합니다. 하지만 작동하려면 위치 업데이트를받을 수있는 콜백 객체를 제공해야합니다. LocationListener 인터페이스를 액티비티 또는 프래그먼트에 추가 한 다음 onLocationChanged () 메서드를 다음과 같이 추가하십시오.

public class TaskEditFragment extends Fragment는 ConnectionCallbacks, OnConnectionFailedListener,

com을 구현합니다. 구글. 기계적 인조 인간. gms. 위치. LocationListener

{

@Override

public void onLocationChanged (최종 위치 위치)

{

토스트. makeText (getActivity (), location. toString (),

토스트. LENGTH_LONG). 보여 주다();

}}

덧붙여서, 관심이있는 모든 것이 사용자의 현재 위치이고, 업데이트 상태를 유지하는데 신경 쓰지 않는다면, FusedLocationApi를 확인하십시오.getLastLocation (): LocationListener 인터페이스의 필요성을 제거합니다. 이제 활동을 실행하면 사용자의 현재 위치를 출력하는 토스트 메시지가 나타납니다. GPS 좌표를 볼 수 있다는 것은 실제로 사용자에게 유용하지 않습니다. 그렇기 때문에 위치를 사용하여 현재 주소를 파악하고 표시해 봅시다. 사용자 주소 표시 방법 Android에는 GPS 좌표에서 사용자 주소를 찾는 지오 코더라는 API가 내장되어 있습니다 (반대의 경우도 마찬가지 임).

사용하기가 매우 쉽습니다. 유일한 단서는 현재 스레드에서 Google에 네트워크 요청을하기 때문에 백그라운드 스레드에서만 실행되도록해야한다는 것입니다 (따라서 느린 메인 UI 스레드에서 멈추지 않도록하십시오. 네트워크).

활동 또는 단편에 다음을 추가하십시오. Geocoder 지오 코더; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); … geocoder = 새 지오 코더 (getActivity ());} @Override public void onLocationChanged (최종 위치 위치) {// 위치 주소를 Google에 문의하십시오. //이 작업은 잠시 시간이 걸릴 수 있으므로 AsyncTask에서 수행하십시오. 새로운 AsyncTask () {@ 보호 된 주소 doInBackground (Void [] params) {try {List addresses = geocoder. getFromLocation (location. getLatitude (), location. getLongitude (), 1); if (addresses! = null && addresses. size ()> 0) 반환 주소. get (0); } catch (IOException e) { // 무시 됨 } return null; 
= null) { String <= // UI 스레드에서 수행됨 @Override

protected void onPostExecute (주소 주소) {

getThoroughfare ();

if (s! = null)

토스트. makeText (getActivity (), s, 토스트. LENGTH_LONG). 보여 주다();

}

}

}. execute ();

} 이 코드는 활동 또는 단편에 지오 코더 필드를 추가하고 onCreate ()에서 초기화 한 다음 onLocationChanged ()에서이 필드를 사용하여 현재 위치의 주소를 찾습니다. 그런 다음 주소의 "도로"가 표시된 토스트 메시지를 표시합니다 (예: "600 West Chicago Avenue. "Geocoder에 의해 반환 된 Address 객체는 정보가 풍부합니다. 표시 할 수있는 항목에 대한 자세한 내용은 javadocs를 확인하십시오.

그러면 Android 활동 또는 조각 내에서 사용자의 현재 위치에 가입하는 방법에 대해 알아야 할 모든 것이 있습니다.

Android 앱 개발 : 위치 - 인형 시작 방법

편집자의 선택

소셜 미디어 측정법을 사용하여 판매를 늘리는 방법 - 소셜 미디어 측정 항목을 사용하는 한 회사

소셜 미디어 측정법을 사용하여 판매를 늘리는 방법 - 소셜 미디어 측정 항목을 사용하는 한 회사

판매를위한 크로스 플랫폼 참여는 Best Buy입니다. Best Buy는 모바일 쇼핑 및 소셜 쇼핑을 매장의 각 품목에 대한 QR 코드를 사용하여 매장 내 경험으로 가져 왔습니다. 고객은 상점의 각 항목에 대한 QR 코드를 스캔하여 리뷰를 포함한 더 많은 정보를 얻을 수 있습니다.

블로그에 Google 웹 로그 분석을 설치하는 방법 - 아직없는 경우

블로그에 Google 웹 로그 분석을 설치하는 방법 - 아직없는 경우

블로그 또는 사이트에서 Google 웹 로그 분석 추적 통계를 사용하여 빠르고 쉽게 설치할 수 있습니다. 설치는 1 분 밖에 걸리지 않으며 완전히 고통스럽지 않습니다. 먼저 Google 애널리틱스 ID를 가져 와서 어딘가에 작성하십시오. 쉽게 찾을 수 있습니다. Google 애널리틱스와 대시 보드에서 로그인하십시오.

웹 사이트에 Google 웹 로그 분석을 설치하는 방법 - 웹 사이트에 Google 웹 로그 분석을 설치하는

웹 사이트에 Google 웹 로그 분석을 설치하는 방법 - 웹 사이트에 Google 웹 로그 분석을 설치하는

단 1 분이며 고통스럽지 않습니다. 곧 Google 애널리틱스 덕분에 잠자는 동안 소셜 미디어 측정 항목을 추적하게 될 것입니다. 먼저 Google 애널리틱스 ID를 가져 와서 어딘가에 작성하십시오. 쉽게 찾을 수 있습니다. Google 애널리틱스 및 대시 보드에 로그인하고 톱니 바퀴 아이콘을 클릭하기 만하면됩니다. ...

편집자의 선택

마케팅 자동화에서 분할 테스트의 기본 이점 - A / B 테스트라고도하는 더미 테스트

마케팅 자동화에서 분할 테스트의 기본 이점 - A / B 테스트라고도하는 더미 테스트

다 변수 테스트뿐만 아니라 요인 일정을 유지하고 다양한 시나리오에서 다른 결과를 테스트하여 마케팅 자동화 테스트를 수행하는 것을 의미합니다. 하나의 유료 검색 광고를 통해 사람들을 2 개의 개별 방문 페이지로 유도하는 것이 그 예입니다. 방문 페이지 테스트하기 ...

자동화 된 마케팅을위한 컨텐츠 작성의 기본 - 인형

자동화 된 마케팅을위한 컨텐츠 작성의 기본 - 인형

마케팅 자동화 도구의 사용을 극대화하기 위해 먼저 사람과 콘텐츠와의 관계를 이해해야합니다. 올바른 사람에게 올바른 콘텐츠를 보내는 경우에만 자동화가 유용합니다. 이를 올바르게 수행하는 방법에 대한 기본적인 이해를 돕기 위해 사람들은 두 가지 유형이 관련되어 있음을 인식해야합니다 ...

Microsoft Dynamics CRM을 사용하는 e-Mail 및 Microsoft Dynamics CRM- 더미

Microsoft Dynamics CRM을 사용하는 e-Mail 및 Microsoft Dynamics CRM- 더미

고객 관계를 관리하는 데 도움이되는 Microsoft 도구 현대 직장에서 가장 유용한 도구 중 하나는 전자 메일이므로 전자 메일을 만들고 읽거나, 전자 메일을 특정 레코드에 연결하거나, 일정을 관리하는 데 숙련되어 있어야합니다. ...

편집자의 선택

웹 호스팅 계획에서 더 많은 것을 얻기위한 10 가지 팁 - 인형

웹 호스팅 계획에서 더 많은 것을 얻기위한 10 가지 팁 - 인형

당신은 자신의 웹 사이트 또는 블로그를 가지고 있고, 고객, 독자 또는 웹 호스팅 기술에 의존하는 추종자 만 있습니다. 다음 팁은 웹 호스팅 계획을 최대한 활용하는 데 도움이됩니다. 제어판에서 백업 옵션을 확인하십시오. 일부 제어판을 사용하면 자동화 된 백업을 수행 할 수 있습니다. ...

귀하의 웹 호스트가 귀하를 도와주지 않는 10 가지 사항 (무료) - 인형

귀하의 웹 호스트가 귀하를 도와주지 않는 10 가지 사항 (무료) - 인형

은 웹 호스트만큼 멋지고, 웹 사이트를 디자인, 제작 및 운영하는 데 도움이되는 일에는 한계가 있습니다. 그것은 모두 돈으로옵니다. 귀하가 기꺼이 지불하는 한 귀하의 호스트는 기꺼이 도움이 될 것입니다. 각 호스트는 다릅니다. ...