16

Androidデバイスにセンサー(たとえば、加速度計)が存在するかどうかを知りたいのですが。

私はSensorManagerクラスを扱っています。これが私が使用しているコードです:

sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),1);

ありがとうございました。

4

5 に答える 5

33

ここを見てください:

http://developer.android.com/reference/android/content/pm/PackageManager.html

あなたがそれをする必要があると思うなら:

PackageManager manager = getPackageManager();
boolean hasAccelerometer = manager.hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER);
于 2012-01-26T23:48:18.663 に答える
15

これがdeveloper.android.comからの推奨事項です:http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-identify

getDefaultSensor()メソッドを使用し、特定のセンサーのタイプ定数を渡すことで、特定のタイプのセンサーがデバイスに存在するかどうかを判断できます。デバイスに特定のタイプのセンサーが複数ある場合は、センサーの1つをデフォルトセンサーとして指定する必要があります。特定のタイプのセンサーにデフォルトのセンサーが存在しない場合、メソッド呼び出しはnullを返します。これは、デバイスにそのタイプのセンサーがないことを意味します。

private SensorManager mSensorManager;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null){
  // Success! There's a magnetometer.
}
else {
  // Failure! No magnetometer.
}
于 2014-09-26T07:18:55.750 に答える
13

2行目はこれに使用できます。

boolean accelerometer;

accelerometer = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if(accelerometer) 
{
.
.
}
于 2012-01-26T23:47:31.853 に答える
3

API9に必要なエラーが発生するため、代わりに次を使用します。

    SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
    for (int i = 0; i< deviceSensors.size(); i++) {
        if (deviceSensors.get(i).getType() == Sensor.TYPE_PRESSURE) {
            mHasBarometer = true;
            break;
        }
    }
于 2013-10-22T02:16:30.063 に答える
0

私は次のコードを使用します:

        SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
       if( sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD).size() > 0)
       {
           //sensor exist
       }
       else
       {
           //disable feature
       }
于 2017-11-30T14:05:52.607 に答える