Android 设备兼容性 - 停止安装
Android Device Compatibility - Stop installation
如果特定硬件不存在,是否有办法阻止 Android 应用程序列在用户的 phone 上?
或者允许用户安装应用程序并执行 isHardwareDetected 检查并向用户显示消息?
例如指纹扫描仪硬件,如果用户不可用 phone 是否可以通过 Google Play 禁用它?
此外,Google Play 商店列表是否可以根据设备的兼容性动态更改?
此致,
尼拉夫
设备特性
您可以在用户的设备不提供给定功能时阻止用户安装您的应用,方法是在应用的清单文件中使用元素进行声明。
例如,如果您的应用在缺少罗盘传感器的设备上没有意义,您可以根据需要使用以下清单标记声明罗盘传感器:
<manifest ... >
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest>
Google Play 商店会将您的应用所需的功能与每个用户设备上可用的功能进行比较,以确定您的应用是否与每个设备兼容。如果设备不提供您的应用所需的所有功能,用户将无法安装您的应用。
但是,如果您应用的主要功能不需要设备功能,您应该将 required 属性设置为“false”并在运行时检查设备功能。
如果该应用功能在当前设备上不可用,请优雅地降级相应的应用功能。例如,您可以像这样调用 hasSystemFeature() 来查询某个功能是否可用:
PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
// This device does not have a compass, turn off the compass feature
disableCompassFeature();
}
如果特定硬件不存在,是否有办法阻止 Android 应用程序列在用户的 phone 上?
或者允许用户安装应用程序并执行 isHardwareDetected 检查并向用户显示消息?
例如指纹扫描仪硬件,如果用户不可用 phone 是否可以通过 Google Play 禁用它?
此外,Google Play 商店列表是否可以根据设备的兼容性动态更改?
此致, 尼拉夫
设备特性
您可以在用户的设备不提供给定功能时阻止用户安装您的应用,方法是在应用的清单文件中使用元素进行声明。
例如,如果您的应用在缺少罗盘传感器的设备上没有意义,您可以根据需要使用以下清单标记声明罗盘传感器:
<manifest ... >
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest>
Google Play 商店会将您的应用所需的功能与每个用户设备上可用的功能进行比较,以确定您的应用是否与每个设备兼容。如果设备不提供您的应用所需的所有功能,用户将无法安装您的应用。
但是,如果您应用的主要功能不需要设备功能,您应该将 required 属性设置为“false”并在运行时检查设备功能。
如果该应用功能在当前设备上不可用,请优雅地降级相应的应用功能。例如,您可以像这样调用 hasSystemFeature() 来查询某个功能是否可用:
PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
// This device does not have a compass, turn off the compass feature
disableCompassFeature();
}