Android アプリで線形加速度フュージョン センサーを使用しようとしています。ただし、Sensor.TYPE_LINEAR_ACCELERATION のセンサーが見つかりません。
私はこれらの呼び出しを実行します:
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
上記の後、mAccelerometer が定義されますが、mLinearAcceleration は null です。TYPE_LINEAR_ACCELERATION が API レベル 9 まで追加されなかったことは知っていますが、少なくとも API レベル 9 で実行していると思います。マニフェスト ファイルのスニペットを次に示します。
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="17" />
したがって、正しい API レベルで作業していると思います。
ただし、使用可能なすべてのセンサーをリストしようとすると、この API レベルで使用できるはずのすべてのセンサーが見つかりません。
電話したら…
List<Sensor> l = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor s : l)
System.out.println(s.getName());
私は得る
Goldfish 3-axis Accelerometer
Goldfish 3-axis Magnetic field sensor
Goldfish Orientation sensor
Goldfish Temperature sensor
Goldfish Proximity sensor
これらはいずれも線形加速度ではなく、1 つは非推奨のセンサーである方向です。私のセンサーは API レベル 9 以前のもののように動作しているように見えますが、その理由はわかりません。私のプロジェクトには、アプリを古い API として機能させる可能性のあるフィールドはありますか? (既に 9 に設定されている、AndroidManifest.xml ファイルの最小サポート API フィールドを除く)