본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android]uses-feature설명 및 Google Play검색 안되는 현상 해결방법

by MinChan-Youn 2023. 5. 9.

안녕하세요~ 챠니입니다! :)

이번에는 <uses-feature> 속성에 대해서 알아보도록 하겠습니다.

 

해당속성은 애플리케이션이 사용하는 단일 하드웨어 또는 소프트웨어 기능을 선언하게 됩니다.

특히 실제 개발에서는 특정기능 설정으로 인해 구글스토어 검색이 안되어 앱이 다운이 안되는 현상에 대해서도 알아보도록 하겠습니다.

 

 

<uses-feature> 이 무엇인가?

Google Play에서는 앱 매니페스트에 선언된 <uses-feature> 요소를 사용하여 하드웨어 및 소프트웨어 기능 요구사항을 충족하지 않는 기기에서 앱을 기기에서 앱을 필터링한다고 나와있습니다.

 

 

1. 문법

<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />

 

* android:name

- 애플리케이션이 사용하는 단일 하드웨어 또는 소프웨어 기능을 설명어 문자열로 지정

 

* android:required

- 기본값은 "true"

- android:required="true": 지정된 기능이 기기에 없으면 애플리케이션이 작동할 수 없거나 작동하도록 설계되지 않았음을 나타냄

- android:required="false": 애플리 케이션이 기기에 있는 경우 기능을 사용하지만 필요하다면 지정된 기능 없이도 작동하도록 설계

 

* android:glEsVersion: 애플리케이션에 필요한 OpenGL Es 버전

 

2. android:required 을 어떻게 설정해야 하는가?

가장 중요한 포인트 입니다.

그래서 android:required를 어떻게 사용해야하는가?

 

Android Developer에서는 다음과 같이 설명을 하고 있습니다.

android:required="false" 설명

android:required="false"로 설정을 하면 앱에서 지정된 기능 선언되어있지만 Google Play 필터링을 중지할 수 있다.

즉 지정된 기능을 지원하지 않는 기기라도 Google Play에서 다운을 받을 수 있다는 것입니다.

 

반대로 android:required="ture" 설정하게 되면

GooglePlay에서 지정된 기능을 지원하는 기기에서만 검색이 가능, 다운을 받을 수 있습니다.

 

 

3. uses-permission uses-feature의 관계

아래의 퍼미션을 선언할때 잘 고려하여서 선언해야 한다는 점을 잊지 말자

Category This Permission... Implies This Feature Requirement
Bluetooth BLUETOOTH android.hardware.bluetooth
(See Special handling for Bluetooth feature for details.)
BLUETOOTH_ADMIN android.hardware.bluetooth
Camera CAMERA android.hardware.camera and 
android.hardware.camera.autofocus
Location ACCESS_MOCK_LOCATION android.hardware.location
ACCESS_LOCATION_EXTRA_COMMANDS android.hardware.location
INSTALL_LOCATION_PROVIDER android.hardware.location
ACCESS_COARSE_LOCATION android.hardware.location.network and 
android.hardware.location
ACCESS_FINE_LOCATION android.hardware.location.gps and 
android.hardware.location
Microphone RECORD_AUDIO android.hardware.microphone
Telephony CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony
Wifi ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi

 

 

참고자료

https://developer.android.com/guide/topics/manifest/uses-feature-element?hl=ko#market-feature-filtering 

 

Android 개발자  |  Android Developers

"애플리케이션이

developer.android.com

http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features

 

Android 개발자  |  Android Developers

"애플리케이션이

developer.android.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=shyonge&logNo=195248471 

 

[Android] Nexus7 Google Play 에서 검색되게 설정

Nexus7을 구글 플레이(Google Play)에서 검색되지 않는 이유는 매니페스트의 설정 때문에 그렇다.  ...

blog.naver.com

 

 

질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

응원의 댓글은 저에게 큰 힘이 된답니다! :)

즐거운 하루되세요!

 

깃허브 보러 놀러오세요 👇 (맞팔환영)

https://github.com/younminchan

 

younminchan - Overview

안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

github.com