android - GPS Manifest : GPS in App is optional, 希望它也可用于 GPS 较少的设备

标签 android gps android-manifest

今天在将我的应用程序上传到市场时,我发现它仅适用于具有 GPS 的设备,因此不包括某些平板电脑。

我的应用程序中的 GPS 是可选的。是否可以为有和没有 GPS 的设备发布一个应用程序,或者我需要制作一个额外的版本(不过没问题)?

如果可能的话,我想有某种方法可以检查 if(deviceHasGPS()){...}。 有吗?

这是我的 list 的一部分:

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />

编辑:感谢您的回答 Raghav Sood !

添加到 list :

<uses-feature android:name="android.hardware.location.gps" 
              android:required="false" />

执行以下操作:

locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
boolean deviceHasGPS = false;
    if (locationManager.getAllProviders().contains(LocationManager.GPS_PROVIDER)) {
        deviceHasGPS = true;
    }

要在带有 gps 的设备上测试它,只需用 if(deviceHasGPS){...} 包围 gps 的东西 然后在 list 中删除:

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

将 deviceHasGPS 设置为始终为 false 并查看 App force 是否关闭。

最佳答案

将以下内容添加到您的 list 中

<uses-feature android:name="android.hardware.location.gps" android:required="false" />

这将告诉 Google Play,虽然您的应用具有 GPS,但绝对要求并非如此。但是,您应该优雅地处理应用中缺少 GPS 的问题,而不是让它崩溃。

要检查设备是否有 GPS,您可以调用 LocationManager.getAllProviders() 并检查 LocationManager.GPS_PROVIDER 是否包含在列表中。

关于android - GPS Manifest : GPS in App is optional, 希望它也可用于 GPS 较少的设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074228/

相关文章:

java - 如何获取设备的 GPS 详细信息

android - 如何在 list 文件中添加后置摄像头的要求?

android - 将 "something"发送到安装了我的应用程序的设备?

android - ScrollView 内的 Android WebView 中的 HTML 滚动事件

android - 我可以为 API < 21 更改 android 中可绘制的单选按钮吗?

android - 插件 [id : 'gradle.plugin.com.onesignal.onesignal-gradle-plugin' ] was not found

android - 即使 PRIORITY_HIGH_ACCURACY 也能提供非常低精度的位置更新

iPhone:使用 GPS 计算步行距离

android - 仅对较旧的 android 版本 : maxSdkVersion does not work? 需要权限

java - 当我单击“保存”按钮时,AsyncTask 发生错误?