콘텐츠로 건너뛰기

Android 앱에서 Pushwoosh location module 사용하기

Android에는 두 가지 위치 액세스 범주가 있습니다:

  • 포그라운드 위치 액세스
  • 백그라운드 위치 액세스

사용자의 위치를 포그라운드에서 업데이트하려면 다음 조건 중 하나를 충족해야 합니다:

  • 앱의 활동 중 하나가 활성 상태인 경우
  • 앱에 대해 foregroundServiceType = “location”인 포그라운드 서비스가 실행된 경우

백그라운드 액세스는 앱이 비활성 상태이고 해당 앱에 대해 “location” 유형의 포그라운드 서비스가 실행되지 않은 동안에도 앱이 사용자의 지리적 위치를 가져올 수 있도록 합니다.

포그라운드 위치 액세스

Anchor link to

앱이 활성 상태일 때만 Pushwoosh 위치 모듈을 사용하여 사용자의 위치를 업데이트하려면 pushwoosh-location 모듈을 app/build.gradle에 추가합니다:

build.gradle
implementation 'com.pushwoosh:pushwoosh-location:6.+'

모듈을 시작하려면 startLocationTracking 메서드를 사용합니다:

PushwooshLocation.startLocationTracking();

애플리케이션이 백그라운드에 있을 때 ForegroundService를 사용하여 위치 요청하기

Anchor link to

startLocationTracking 메서드가 호출될 때 ForegroundService를 시작하여 애플리케이션이 백그라운드에 있을 때 사용자의 지리적 위치를 가져올 수 있도록 하려면, 이전 단락에 설명된 단계를 따른 다음, 다음 메타데이터를 AndroidManifest.xml에 추가합니다:

...
<application>
....
<meta-data
android:name="com.pushwoosh.start_foreground_service"
android:value="true" />
...
</application>
...

ForegroundService가 시작되면 알림이 생성됩니다. 프로젝트의 AndroidManifest.xml에 추가 메타데이터를 지정하여 알림을 사용자 정의할 수 있습니다:

...
<application>
....
<meta-data
android:name="com.pushwoosh.foreground_service_notification_text"
android:value="My notification text" />
<meta-data
android:name="com.pushwoosh.foreground_service_notification_channel_name"
android:value="My notification channel name" />
...
</application>
...

백그라운드 위치 액세스

Anchor link to

ForegroundService 실행 없이 백그라운드에서 지리적 위치를 업데이트하려면 다음이 필요합니다:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

6.3.2 pushwoosh-location 모듈 버전에는 다음 조건이 충족될 경우 위치 권한 설정 화면을 여는 추가 메서드가 포함되어 있습니다:

  • 앱에 포그라운드 위치 권한이 부여된 경우
  • 앱의 AndroidManifest.xml에 ACCESS_BACKGROUND_LOCATION 사용자 권한이 있는 경우

메서드를 다음과 같이 호출합니다:

PushwooshLocation.requestBackgroundLocationPermission();

Android 12 이상 권한 유형

Anchor link to

Android 12부터 포그라운드 위치 액세스 권한을 요청받을 때, 사용자는 앱이 사용자의 위치를 얼마나 자주, 어떤 정밀도로 가져올지 선택할 수 있습니다.

두 가지 유형의 권한이 있습니다:

  1. ACCESS_COARSE_LOCATION과 동일한 대략적인 위치
  2. ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION과 동일한 정확한 위치

피드백을 공유해주세요

Anchor link to

귀하의 피드백은 더 나은 경험을 만드는 데 도움이 되므로, SDK 통합 과정에서 문제가 발생하면 기꺼이 의견을 듣고 싶습니다. 어려움이 있으시면 이 양식을 통해 주저하지 말고 의견을 공유해 주세요.