안드로이드 코드
[구글 스토어 API 29] 초 간단 백그라운드 위치 권환 (항상 허용 코드)
우딬
2021. 8. 3. 17:39
API29일때 가능한 코드입니다. API30이상일때는 사용되지 않습니다.
하지만 29로 사용시 구글 스토어에 등록이 되지 않습니다.
안드로이드 11 버전
11버전은 처음창에 항상 허용이 안뜬다.
그래서 Allow in settings 메뉴에 가서 항상허용을 해 주어야한다.
안드로이드 10 버전
안드로이드 9 이하 버전
자바 코드
public class locationActivity extends AppCompatActivity {
//처음시작할때 뜨는 창
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.location_activity);
ActivityCompat.requestPermissions(locationActivity.this,
new String[]{permission.ACCESS_FINE_LOCATION,
permission.ACCESS_COARSE_LOCATION,
permission.ACCESS_BACKGROUND_LOCATION}, 1999);
//1999는 요청 코드로 어떤 숫자를 써도 상관 없습니다.
}
//권환 설정 후 돌아오는 창
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 1999:
if (ActivityCompat.checkSelfPermission(locationActivity.this,
Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(locationActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED ) {
//설정 완료시
}else{
//설정 취소시
Toast.makeText(locationActivity.this, "권한 설정을 취소했습니다.", Toast.LENGTH_SHORT).show();
finish();
}
}
}
}
메니페스트
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />