1

利用可能なプロバイダーを使用して、ユーザーの位置データを取得する必要があります。すべてのプロバイダーが無効になっている場合は、ダイアログをポップアップして、ユーザーが位置情報サービスに移動し、プロバイダー (GPS および/またはネットワークが利用可能なもの) を有効にできるようにする必要があります。Prestigio PMP5197D ULTRA でプロバイダーが利用可能かどうかを確認する際に問題が発生しました。GPSサービスはありません。次のコードを使用しました。

// I get and log list of disabled providers...
ArrayList<String> names = (ArrayList<String>)locationManager.getProviders(false);
for(String t: names){
    Log.e("TEST", "DISABLED " + t);
}

// I get and log list of enabled providers...
ArrayList<String> names2 = (ArrayList<String>)locationManager.getProviders(true);
for(String t: names2){
    Log.e("TEST", "ENABLED " + t);
}

次のデバイスではすべて問題ありません...

NEXUS 7 (2013) (4.3)
場所 設定
で無効 無効 パッシブ
無効 gps
無効 ネットワーク
有効 パッシブ

設定
で有効になっている場所 無効 パッシブ
無効 gps
無効 ネットワーク
有効 パッシブ
有効 gps
有効 ネットワーク

HTC Desire (2.2.2)
場所 設定
で無効 無効 ネットワーク
無効 パッシブ
無効 gps
有効 パッシブ

設定
で有効になっている場所 無効 パッシブ
無効 gps
有効 ネットワーク
有効 パッシブ
有効 gps

しかし、このタブレットでは常に GPS がアクティブになっています。デバイスに GPS がないため、これは非常に奇妙です。もちろん、設定には GPS のオプションはありません。


Prestigio PMP5197D ULTRA (4.0.3) - デバイスに GPS がない 場所
設定で無効 無効ネットワーク 無効
パッシブ 無効
gps 有効
パッシブ 有効
gps

設定 で有効な場所 無効な
ネットワーク
無効なパッシブ 無効な
gps 有効な
ネットワーク
有効なパッシブ 有効な
gps

ユーザーが位置情報ボタンをクリックしようとすると、位置情報サービスが無効になっている場合 (ネットワークのみが利用可能)、ユーザーに対して前述のダイアログをポップアップする必要があります。しかし、ロケーション マネージャーのメソッド isProviderEnabled(LocationManager.GPS_PROVIDER) が true を返すため、GPS が有効で、ライブで動作しているように見えます。そのため、ユーザーにダイアログを表示せず、データも取得されません。この問題の回避策を知っている人はいますか?

4

0 に答える 0