GPS清单:GPS在应用程序是可选的,希望把它提供给GPS设备少得(GPS Manifest: GP

2019-06-25 13:42发布

今天我的应用程序上传到市场,我一看,原来是只提供给拥有GPS设备,因此这排除了一些药片。

GPS在我的应用程序是可选的。 是否有可能推出一个应用程序使用和不使用GPS设备或做我需要做一个额外的版本(就没有问题了,虽然)?

如果有可能,我想有某种方法来检查(deviceHasGPS()){...}。 是否有一个?

这是我的清单的一部分:

<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" />

编辑:感谢您的回答拉夫·索德 !

添加的体现:

<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的设备上,只是围绕着GPS事情如果(deviceHasGPS){...}然后在清单中删除:

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

设置deviceHasGPS总是假的,看看应用强行关闭。

Answer 1:

以下添加到您的清单

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

这将告诉谷歌播放,虽然你的应用有GPS,它是绝对的要求是不正确的。 然而,你应该处理的,而不是让它崩溃在你的应用程序优雅地缺乏GPS的。

要检查是该设备有GPS,你可以调用LocationManager.getAllProviders()并检查是否LocationManager.GPS_PROVIDER被列入名单。



文章来源: GPS Manifest: GPS in App is optional, want to make it available to GPS less devices too