【Android】宣告 app 軟、硬體需求

參考資料 ----
Features Reference


有時我們開發的 app 需要具有某些硬體功能 (例如:GPS 定位NFC... 等),我們就必須在 AndroidManifest.xml 內宣告我們的 app 的系統需求,免得使用者使用不相符的 Android 裝置下載安裝後,才發現他的 Android 裝置不支援;甚至有些使用者,明明是自己的 Android 裝置不支援問題,還怪說 app 寫得爛! 給了您的 app 極低的評價。

語法:
 
<uses-feature
    android:name="string"
    android:required=["true" | "false"]
    android:glEsVersion="integer" />
 
其中 android:required=["true" | "false"] 表示此功能特性是否為必需,若是值為 true,當使用者在逛 Google Play 市集時,Play 市集會檢查使用者的 Android 裝置是否支援該功能,若不支援,則 Play 市集會將此 app 過濾不顯示。

例如 ----
 
定位類:
<uses-feature android:name="android.hardware.location"
              android:required="true" />
主功能,app 會使用定位功能, Android 裝置至少需具有 GPS 定位, 網路定位, or cell location(這是什麼鬼? 不知道).

<uses-feature android:name="android.hardware.location.network"
              android:required="true" />
次功能,app 會使用網路定位方式取得約略的位置.

<uses-feature android:name="android.hardware.location.gps"
              android:required="true" />
次功能,app 會使用 GPS 定位方式取得精確的位置.

<!--
當宣告 android:name="android.hardware.location.network" 或 android:name="android.hardware.location.gps" ,
且 android:required="true" 時,
就已預設宣告了 android:name="android.hardware.location";
所以您可以不用宣告android:name="android.hardware.location"
反過來說,當 android:required="false" 時,則一定要宣告 android:name="android.hardware.location"
-->