2011-07-12 7 views
3

私はアンドロイド携帯電話にGPSデバイスがあるかどうかを教えてくれるコードを見つけようとしていますか?検索結果に表示されるほとんどのサンプルは、GPSが有効かどうかを示しています。私が興味を持っているのは、Androidの携帯電話に物理的なGPSデバイスがあるかどうかです。携帯電話にGPSデバイスが搭載されているかどうかを確認するにはどうすればよいですか?

おかげ

答えて

6
public boolean hasGPSDevice(Context context) 
    { 
    final LocationManager mgr = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 
    if (mgr == null) return false; 
    final List<String> providers = mgr.getAllProviders(); 
    if (providers == null) return false; 
    return providers.contains(LocationManager.GPS_PROVIDER); 
    } 
+1

+ 1をあなたの答えは、理にかなっています。しかし、私が 'GPS Support = No'を実行してもエミュレータではこのコードは真を返します。何か案は?これはGPSなしで電話でうまくいくかもしれませんが、それは偽を返しますが、確実ではありません... –

13

APIレベル8(フローズンヨーグルト)以降では、次のコードを使用することができます

PackageManager packageManager = mContext.getPackageManager(); 
boolean hasGPS = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); 
+0

Kindle Fire(GPSなし)でテストされ、魅力的に機能します。 –

+0

LocationManagerより少ないプロセス時間#getAllProviders() –

関連する問題