28

今日、私のアプリを市場にアップロードしたところ、GPSを搭載したデバイスでしか利用できないことがわかりました。そのため、一部のタブレットは除外されています。

私のアプリのGPSはオプションです。GPSの有無にかかわらずデバイス用に1つのアプリをリリースすることは可能ですか、それとも追加のバージョンを作成する必要がありますか(ただし、問題はありません)?

可能であれば、(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" />

編集:Answer Raghav Soodに感謝します!

マニフェストに追加:

<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をif(deviceHasGPS){...}で囲み、マニフェストから削除します。

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

deviceHasGPSを常にfalseに設定し、Appforceが閉じるかどうかを確認します。

4

1 に答える 1

38

マニフェストに以下を追加します

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

これにより、アプリにGPSが搭載されているものの、絶対的な要件は当てはまらないことがGooglePlayに通知されます。ただし、アプリをクラッシュさせるのではなく、GPSの欠如を適切に処理する必要があります。

デバイスにGPSが搭載されているかどうかを確認するには、電話をかけてリストに含まれているLocationManager.getAllProviders()かどうかを確認します。LocationManager.GPS_PROVIDER

于 2012-06-17T19:40:38.417 に答える